From: Glenn T. <gt...@um...> - 2010-03-04 04:13:09
|
In target-thread.lisp there is the following comment (in get-mutex): ;; FIXME: Lutexes do not currently support deadlines, as at least ;; on Darwin pthread_foo_timedbar functions are not supported: ;; this means that we probably need to use the Carbon multiprocessing ;; functions on Darwin. ;; ;; FIXME: This is definitely not interrupt safe: what happens if ;; we get hit (1) during the lutex calls (ok, they may be safe, ;; but has that been checked?) (2) after the lutex call, but ;; before setting the mutex owner. #!+sb-lutex The bit of code related to this comment is causing a hang in threads.impure.lisp where deadlines are being used. My question is does anyone remember what the particular issue was? On Snow Leopard pthread_cond_timedwait() (which is the only pthread_foo_timedbar function that I could find that seemed related to the comment) seems to be supported. I tried using pthread-futex.c rather than pthread-lutex.c. (disabled sb-lutex, enabled sb-pthread-futex). That seems to work for some of the deadline tests (that were hanging but started passing with that change) but other tests that were passing now hang when I do the switch. Also, pthread-futex.c didn't compile at first - so it doesn't seem like its really being used and makes me wonder if there are other known issues with it that caused it to be deprecated. Any insight greatly appreciated! Thanks, Glenn V. Glenn Tarcea gt...@um... |