[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Threads and asyncs
From: |
Marius Vollmer |
Subject: |
Threads and asyncs |
Date: |
02 Sep 2002 22:52:13 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Hi,
currently, when you mark a system-async, it is run at the next 'safe'
point. This does not take the current thread into account and thus,
you can not have thread-specific system-asyncs. One example where you
might want to have a thread-specific async is when you want to
interrupt the computation in a certain thread, the way you can now
interrupt the repl via C-c.
I would like to specify explicitely that marking a system-async will
run its thunk in the thread that did the marking. That should not be
a large change since the next safe point will most likely occur before
the next thread switch.
Also, I'd like to add a function that marks a system-async for a
specified thread. The async would run at the next safe point in that
thread.
The implementation can be changed from a global list of system-asyncs,
each with a mark, to a per-thread list of marked system-asyncs.
Marking a system-asnyc for a thread would add that system-async to the
thread's lists. SCM_ASYNC_TICK would check whether the current
thread's list is non-empty. Also, a thread would wake up when it is
blocked and run its asyncs anyway.
'sigaction' can be extended to allow marking of an async for a
specified thread.
With this change, an async would simply be a thunk. We could just use
the thunk directly and deprecate the async abstraction.
OK?
(Non-system asyncs would not be affected.)
--
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3 331E FAF8 226A D5D4 E405
- Threads and asyncs,
Marius Vollmer <=
- Re: Threads and asyncs, Tom Lord, 2002/09/02
- Re: Threads and asyncs, Rob Browning, 2002/09/02
- Re: Threads and asyncs, Tom Lord, 2002/09/02
- Re: Threads and asyncs, Tom Lord, 2002/09/02
- Re: Threads and asyncs, Lynn Winebarger, 2002/09/02
- Re: Threads and asyncs, Tom Lord, 2002/09/02
- Re: Threads and asyncs, Thomas Bushnell, BSG, 2002/09/02