SRFI-18
Whee -- the second of the three SRFI-18 patches has just
been committed to Guile HEAD. This one was a doozy, and
included a bunch of additions to the core threading API.
Specifically, the following functions are now available for
use: scm_join_thread_timed
,
scm_thread_p
,
scm_make_mutex_with_flags
,
scm_lock_mutex_timed
,
scm_unlock_mutex_timed
,
scm_mutex_p
, and
scm_condition_variable_p
. In addition to
providing the groundwork for a full Scheme implementation of
SRFI-18, I think these functions bring Guile's threading API
comparably up to date with most other modern, you know,
commodity language platforms.
One of the neat things that came out of this round of
discussion and debugging is that, as kind of pointed out by
Marc Feeley's SRFI-18 spec, waiting on a condition variable
is actually a special case of mutex unlocking.
Next up: The Scheme parts of SRFI-18. This should come
fairly quickly, given that it's already written -- and that
Scheme's far less brittle than C when it comes to refactoring.
The big blue (server) room
I spent yesterday (Saturday) in the office, helping my boss
build a rack for our servers, something neither of us had
ever done before. The process involved completely
dismantling the network used by our company (and the two
other companies we share space with); dismantling the
existing rack; building our new rack; hastily purchasing
underpowered power tools to drill holes into the hardwood
floors to brace the thing; painstakingly hooking everything
back up according to the notes I'd taken; having nothing
work right; panicking; finally realizing at midnight that
there was a bad Ethernet cable between the T1 and the
switch; celebrating.
Woke up at 2:00 PM today, still groggy, all the muscles in
my back cramped to hell.