


## quickstring.pkg
# Compiled by:
# src/lib/std/standard.lib# Thread-safe version of Quickstring,
# protecting the global hashtable with a lock.
package quickstring: (weak) Quickstring { # Quickstring is from src/lib/src/quickstring.api #
include threadkit; # threadkit is from src/lib/src/lib/thread-kit/src/core-thread-kit/threadkit.pkg include quickstring__premicrothread; # quickstring__premicrothread is from src/lib/src/quickstring--premicrothread.pkg stipulate
#
lock = make_maildrop ();
#
herein
fun atomically f a
=
{
log::note_in_ramlog .{ sprintf "atomically calling empty *uninterruptible_scope_mutex d=%d --threadkit-winix-data-file-for-os-g" *microthread_preemptive_scheduler::uninterruptible_scope_mutex; };
take_from_maildrop lock;
#
f a
before
{
log::note_in_ramlog .{ sprintf "atomically calling fill *uninterruptible_scope_mutex d=%d --threadkit-winix-data-file-for-os-g" *microthread_preemptive_scheduler::uninterruptible_scope_mutex; };
put_in_maildrop (lock, ());
};
};
end;
from_string = atomically from_string;
from_substring = atomically from_substring;
};
## Author: Matthias Blume (blume@tti-c.org)
## Copyright (c) 2005 by The Fellowship of SML/NJ
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2013,
## released per terms of SMLNJ-COPYRIGHT.


