Search
Wednesday, 8th of April 2020, 6:26:15 UTC
15:08:04
kpoeck
mp:process-suspend and mp:interrupt-process don't seem to work at all. Did that ever work?
15:08:44
kpoeck
See https://github.com/clasp-developers/clasp/issues/971
15:09:33
kpoeck
In ecl these seem to work, I wonder whether I should check the code there
15:55:32
kpoeck
Perhaps the code in wake_up_thread is unfinished
15:58:32
kpoeck
is the following safe to get the current process:
15:58:37
kpoeck
Process_sp this_process = gc::As<Process_sp>(_sym_STARcurrent_processSTAR->symbolValue());
16:06:05
Bike
kpoeck: interrupts are only checked when an object is allocated.
16:06:08
Bike
kpoeck: no, this is not great
16:06:28
Bike
but try throwing a call to CONS or something in there and see if it does wake up
16:12:27
kpoeck
Before I read your answer, if thought that perhaps wake_up_thread just has to call handle_all_queued_interrupts
16:13:29
kpoeck
That seems to be called from the allocator
16:16:01
kpoeck
So I hope is what you just said
16:16:37
Bike
if i remember correctly, the problem with doing it more broadly is that some parts of the code can't be safely interrupted - i mean we're talking the ability to stop anywhere at all, run some arbitrary lisp code, and then restart
16:17:06
Bike
so what we'd need to do is figure out more safepoints than just after an allocation
16:21:11
kpoeck
So that it works e.g. to interrupt a thread, this thread to be interrupted has to allocate somewhere?
16:21:36
Bike
again, this is not a good solution, i'm just saying that's how it works
16:22:00
kpoeck
Yes, I am glad to you help me understand the current code
16:27:36
Bike
i looked at what ecl does before, i think basically they're more scrupulous about global state
16:28:00
kpoeck
and suddently I can suspend threads
16:28:34
kpoeck
By consing in the thread-loop
16:31:23
kpoeck
and the process is printed as follows: #<PROCESS "Another process" @0x121698659 Phase:Suspended>
16:31:45
kpoeck
with https://github.com/clasp-developers/clasp/pull/970
16:33:24
kpoeck
and mp:process-resume works too
18:15:08
Bike
working on the native debugger. glad to finally cdlean this thing up
18:16:23
Bike
i have some idea of what we need to know about locals now, too
18:17:14
Bike
seems like locals and arguments are basically separate...
Wednesday, 8th of April 2020, 18:26:15 UTC