On Fri, Jan 03, 2014 at 08:56:12PM +0100, Holger Hans Peter Freyther wrote:
> So the process does not suspend and the TOS appears to be something
> wird. Do you have an idea of what could go wrong?
I think it is a race:
_after_ the process has been suspended by the primitive the async queue
is ran which will put back the semaphoreOOP into the myList.
(gdb) bt
#0 0xb76d2901 in remove_process_from_list
(processOOP=processOOP@entry=0x40442c68)
at interp.c:1399
#1 0xb76d29dc in add_last_link (semaphoreOOP=0x4043f6c0,
processOOP=processOOP@entry=0x40442c68) at interp.c:1478
#2 0xb76d2a39 in sleep_process (processOOP=processOOP@entry=0x40442c68) at
interp.c:1887
#3 0xb76d73cf in resume_process (processOOP=processOOP@entry=0x40489e78,
alwaysPreempt=<optimized out>, alwaysPreempt@entry=false) at interp.c:1797
#4 0xb76e43bf in _gst_sync_signal (semaphoreOOP=semaphoreOOP@entry=0x40489e80,
incr_if_empty=incr_if_empty@entry=true) at interp.c:1544
#5 0xb76e4717 in _gst_do_async_signal (semaphoreOOP=0x40489e80) at
interp.c:1559
#6 0xb76e58bf in empty_async_queue () at interp.c:1632
#7 _gst_interpret (processOOP=processOOP@entry=0x40489e78) at
interp-jit.inl:420
#8 0xb76e6c00 in _gst_nvmsg_send (receiver=receiver@entry=0x4043c800,
sendSelector=sendSelector@entry=0x40489e10, args=args@entry=0x0,
sendArgs=sendArgs@entry=0) at interp.c:2317
So is it possible that the suspended process is also the get_active_process
at that time? And then it gets re-inserted into the waiting list?
_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk