[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[MIT-Scheme-devel] Symmetric MultiProcessing
From: |
Friar Puck |
Subject: |
[MIT-Scheme-devel] Symmetric MultiProcessing |
Date: |
Sun, 3 Jan 2016 14:04:45 -0700 |
Bless me, Yon Schemish, for I have Schemed.
It has been 14 months since my last confession and I now have a
not-entirely-unstable SMP branch. Edwin seems to be working quite
well, and --processors 2 continues to get it done in ~60% of the time.
I have to turn the timer interrupts way up and hit Edwin just right to
make it stumble.
While I Wonder at Chaos's fiendish hold on my Scheme, I do not want to
delay certain other preparations for Symmetric MultiProcessing --
preparations that should do no harm on the uniprocessing master
branch (other than change some user-visible bindings).
I extended the thread events mechanism with subprocess status events.
Using them, I was able to replace without-interrupts with with-thread-
events-blocked in Edwin's event handling. I also added GC thread
events so that notifications execute in a valid dynamic state even
when the GC occurs where there is no current thread.
The user-visible changes are:
* Removed subprocess-global-status-tick and subprocess-status-tick.
* Added register-subprocess-event and deregister-subprocess-event.
* Added register-gc-event, deregister-gc-event and registered-gc-event.
Your brother in Scheme,
Friar Puck