Re: race condition in run-time system
Taylor R Campbell <[email protected]>
| Newsgroups | gmane.lisp.scheme.scheme48 |
|---|---|
| Message-ID | <[email protected]> |
Date: Fri, 08 May 2009 08:49:18 +0200 From: Michael Sperber <[email protected]> Could you elaborate a bit on where the race occurs? I don't see it, despite staring at it for a while. (I see that it may get in the way of itself, but only in inconsequential ways.) Two threads, A and B, call PERIODICALLY-FORCE-OUTPUT! concurrently (because they both called OPEN-OUTPUT-FILE or something). Each thread fetches the cdr of the list of periodically forced ports. Each thread conses up a new cdr. Thread A sets the cdr, and then thread B sets the cdr again, clobbering the change that thread A made, effectively removing thread A's port from the list. Thread A's port will not be periodically forced.