[M3commit] [modula3/cm3] 961ec4: Add record of current test output, for future comp...
Rodney Bates
rodney.m.bates at acm.org
Tue Jul 21 18:14:43 CEST 2015
Branch: refs/heads/master
Home: https://github.com/modula3/cm3
Commit: 961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8
https://github.com/modula3/cm3/commit/961ec4fb76ac8658a6b1ed4dd2e7416633bcd5f8
Author: Rodney Bates <rodney.m.bates at acm.org>
Date: 2015-07-18 (Sat, 18 Jul 2015)
Changed paths:
A m3-libs/libunicode/tests/unird/README
Log Message:
-----------
Add record of current test output, for future comparison.
Changes to be committed:
new file: m3-libs/libunicode/tests/unird/README
Commit: a857b5c1caa5917a4754280d324edd82540b06fa
https://github.com/modula3/cm3/commit/a857b5c1caa5917a4754280d324edd82540b06fa
Author: Rodney Bates <rodney.m.bates at acm.org>
Date: 2015-07-21 (Tue, 21 Jul 2015)
Changed paths:
M m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3
A m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3
M m3-libs/m3core/src/thread/PTHREAD/m3makefile
Log Message:
-----------
O(1) FIFO wakeup of waiters on both Mutexs and Conditions.
Formerly, Mutex wakeup was FIFO but used an O(n) per wakeup algorithm,
while Condition wakeup was LIFO but O(1). Make both cases
FIFO and O(1) by using one-way, circularly linked lists, with
the origin pointer pointing to the list tail. No change in
object types needed.
This showed slight reductions in number of "appears starved or deadlocked"
messages in the thread test at m3-libs/m3core/tests/thread, for a few
combinations of thread count and iteration count. Total runtime variations
were in the noise. In some cases, 4-core CPU utilizations appeared slightly
higher in a visual graph.
Also documented non-obvious dynamically-changing rule about what mutex
protects two fields in an Activation.
Since this is both fragile and potentially high-stakes, the
old version of ThreadPThread.m3 is now committed in
m3-libs/m3core/src/thread/PTHREAD/ThreadPThread0.m3, for quicker reversion,
should bugs appear. Look in the m3makefile for quick comment in/out to revert.
You will probably have to clean, compile (to link), and ship all involved
libraries and your main program.
Changes to be committed:
modified: thread/PTHREAD/ThreadPThread.m3
new file: thread/PTHREAD/ThreadPThread0.m3
modified: thread/PTHREAD/m3makefile
Commit: 3ab68ebfb6b08b6972883db5c127ee5eb79eaa14
https://github.com/modula3/cm3/commit/3ab68ebfb6b08b6972883db5c127ee5eb79eaa14
Author: Rodney Bates <rodney.m.bates at acm.org>
Date: 2015-07-21 (Tue, 21 Jul 2015)
Changed paths:
M m3-sys/m3back/src/M3C.m3
Log Message:
-----------
Merge branch 'master' of https://github.com/modula3/cm3
Compare: https://github.com/modula3/cm3/compare/902dc7f1dc70...3ab68ebfb6b0
More information about the M3commit
mailing list