Change Log
2002/08/11 -- Provided an alternative version of Cheap Threads
designed for use in embedded systems. By using different combinations
of modules, the application can avoid the use of file IO, dynamically
allocated memory, or both.
2002/09/08 -- Fixed a bug whereby the sender of a broadcast message was
not itself
receiving the message.
Also: Introduced functions (ct_enqueue(), ct_distribute_enq() and
ct_broadcast_enq()) for awakening sleeping threads without sending a
message. As a result the recipients do not have to examine and
discard an empty message. So far these functions are neither
documented nor fully tested.
2002/09/15 -- Updated the documentation to reflect the new functions.
2002/09/21 -- Fixed a bug. If a thread called ct_exit(), its
destructor function (if there was one) would be called twice. Thanks
to Mauro Condarelli for the bug report.
2002/09/26 -- Added a new function
ct_create_sleeping_thread().
It is exactly like
ct_create_thread() except that it
does not not enqueue the new thread for execution. Instead, the
thread will sleep until it receives an event.
2002/09/30 -- Added a new function
ct_self_data() to return a pointer to
the current thread's data.
Also: changed the scheduling algorithm. If a thread returns without
removing all messages from its input queue, it will be enqueued for
execution at the highest priority, even if it has tried to put
itself to sleep. In theory, but probably not in practice, this
change could break existing code. See the discussion
elsewhere for details.
2002/11/16 -- Corrected a misplaced #endif in ctutil.h, which had
caused compile errors when debugging was turned off. Thanks to
Jeff Tomich for the bug report.
2003/05/19 -- Provided a timeout facility.
A thread can now put itself to sleep to be awakened after a specified
interval, if no other event awakens it first.
Also: started a
Cheap Threads mailing list, hosted by Yahoo.
2003/06/08 -- Used a reference counting scheme to streamline the
machinery for passing messages. Messaging now uses less memory,
especially for long messages sent to multiple recipients. Thanks
to Mauro Condarelli for the suggestion.
2003/07/27 -- Fixed a memory leak introduced by the previous release
(v2.5). The leak occurred when an enqueue was sent to a thread. The
fix is confined to ctsched.c and to its embedded counterpart ectsched.c.
2003/08/31 -- Added demo1, a simple demo
program. No changes to the Cheap Threads routines themselves.
2003/09/06 -- Tweaked header file ct.h so that, within a C++ program,
the prototyped functions will all be declared as extern "C". C++
programs can now call the Cheap Threads functions directly.
2005/05/08 -- Added ct_return function.
Home