i guess that makes sense. thanks. it's not clear to me why there's a deadlock but the code looks pretty ugly. i'll try simplifying it and see how it goes. andrew
On Saturday, 30 January 2016 02:05:15 UTC-3, Yichao Yu wrote: > > On Fri, Jan 29, 2016 at 10:53 PM, andrew cooke <[email protected] > <javascript:>> wrote: > > > > i've been away from julia for a while so am not up-to-date on changes, > and > > am looking at an odd problem. > > > > i have some code, which is messier and more complex than i would like, > which > > is called to print a graph of values. the print code uses tasks. in > 0.3 > > this works, but in 0.4 the program sits, using no CPU. > > > > if i dump the stack (using gstack PID) i see: > > > > Thread 4 (Thread 0x7efe3b6bb700 (LWP 1709)): > > #0 0x00007f0042e7e05f in pthread_cond_wait@@GLIBC_2.3.2 () from > > /lib64/libpthread.so.0 > > #1 0x00007efe3bf62b5b in blas_thread_server () from > > /home/andrew/pkg/julia-0.4/usr/bin/../lib/libopenblas64_.so > > #2 0x00007f0042e7a0a4 in start_thread () from /lib64/libpthread.so.0 > > #3 0x00007f004231604d in clone () from /lib64/libc.so.6 > > Thread 3 (Thread 0x7efe3aeba700 (LWP 1710)): > > #0 0x00007f0042e7e05f in pthread_cond_wait@@GLIBC_2.3.2 () from > > /lib64/libpthread.so.0 > > #1 0x00007efe3bf62b5b in blas_thread_server () from > > /home/andrew/pkg/julia-0.4/usr/bin/../lib/libopenblas64_.so > > #2 0x00007f0042e7a0a4 in start_thread () from /lib64/libpthread.so.0 > > #3 0x00007f004231604d in clone () from /lib64/libc.so.6 > > Thread 2 (Thread 0x7efe3a6b9700 (LWP 1711)): > > #0 0x00007f0042e7e05f in pthread_cond_wait@@GLIBC_2.3.2 () from > > /lib64/libpthread.so.0 > > #1 0x00007efe3bf62b5b in blas_thread_server () from > > /home/andrew/pkg/julia-0.4/usr/bin/../lib/libopenblas64_.so > > #2 0x00007f0042e7a0a4 in start_thread () from /lib64/libpthread.so.0 > > #3 0x00007f004231604d in clone () from /lib64/libc.so.6 > > Thread 1 (Thread 0x7f0044710740 (LWP 1708)): > > #0 0x00007f0042e8120d in pause () from /lib64/libpthread.so.0 > > #1 0x00007f0040a190fe in julia_wait_17546 () at task.jl:364 > > #2 0x00007f0040a18ea1 in julia_wait_17544 () at task.jl:286 > > #3 0x00007f0040a40ffc in julia_lock_18599 () at lock.jl:23 > > #4 0x00007efe3ecdbeb7 in ?? () > > #5 0x00007ffd3e6ad2c0 in ?? () > > #6 0x0000000000000000 in ?? () > > > > which looks suspiciously like some kind of deadlock. > > > > but i am not using threads, myself. just tasks. > > Tasks are not threads. You can see the threads are started by openblas. > > IIUC tasks can have dead lock too, depending on how you use it. > > > > > hence the question. any pointers appreciated. > > > > thanks, > > andrew > > >
