我遇到了一个非常烦人的问题:我有一个程序在开始时创建一个线程,该线程将在执行期间启动其他内容(fork() 紧随其后的是 execve())。
这是我的程序达到(我认为)死锁时两个线程的 bt:
线程 2 (LWP 8839):
#0 0x00007ffff6cdf736 在 __libc_fork () 中 ../sysdeps/nptl/fork.c:125
#1 _IO_new_proc_open 中的 0x00007ffff6c8f8c0 (fp=fp@entry=0x7ffff00031d0, command=command@entry=0x7ffff6c26e20 "ps -u brejon | grep \"cvc\"
#2 _IO_new_popen 中的 0x00007ffff6c8fbcc (命令 = 0x7ffff6c26e20 "ps -u user| grep \"cvc\" | wc -l", mode=0x42c7fd "r") at iopopen.c:296
#3-4...
#5 0x00007ffff74d9434 在 pthread_create.c:333 处的 start_thread (arg=0x7ffff6c27700)
#6 0x00007ffff6d0fcfd 在克隆()中位于../sysdeps/unix/sysv/linux/x86_64/clone.S:109
线程 1 (LWP 8835):
#0 __lll_lock_wait_private () 位于 ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95
malloc_atfork 中的 #1 0x00007ffff6ca0ad9 (sz=140737337120848,调用者=) at arena.c:179
#2 0x00007ffff6c8d875 在 __GI__IO_file_doallocate (fp=0x17a72230) …