home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-2.iso / Developer / resources / libraries / threadkit / ThreadKit.README < prev    next >
Encoding:
Text File  |  1993-08-12  |  5.2 KB  |  185 lines

  1. *** ThreadKit Beta Release Notes ***
  2.  
  3. The ThreadKit is a complete toolkit for trying to make
  4. multithreaded NeXTSTEP programming a little less arcane.
  5. It will be released as a commercial product at a very
  6. reasonable price when complete.  This beta version expires
  7. August 31.
  8.  
  9. The ThreadKit consists of four classes, a category and a protocol:
  10.  
  11. * TKThreadLocking Protocol
  12.  
  13.   A protocol that defines locking syntax shared by all ThreadKit
  14.   classes
  15.  
  16. * TKObject Class
  17.  
  18.   A subclass of Object that adds the common locking mechanism
  19.   used by all ThreadKit classes.  A TKObject combines the
  20.   behaviour of the Mach Kit NXRecursiveLock and NXConditionLock
  21.   classes while adding non-blocking locking methods
  22.  
  23. * Object ( TKThreadLocking ) Category
  24.  
  25.   Extends the TKThreadLocking protocol to all every class in
  26.   your application so that every class you use behaves as if it
  27.   inherited from TKObject
  28.  
  29. * TKResource Class
  30.  
  31.   A subclass of TKObject that manages a pool of named resources,
  32.   allowing your application to lock and unlock ANYTHING in a
  33.   thread safe fashion, including non-threadsafe functions like
  34.   "printf"
  35.  
  36. * TKApplication Class
  37.  
  38.   A subclass of Application that allows threads to access AppKit
  39.   objects and methods with impunity
  40.  
  41. * TKThread Class
  42.  
  43.   A subclass of TKObject that provides a mechanism for spawning
  44.   and controlling autonomous threads
  45.  
  46. ---
  47.  
  48. Two simple examples included demonstrate ThreadKit use, more to
  49. come...
  50.  
  51. ---
  52.  
  53. Planned for 1.0
  54.  
  55.   -  Finalized API
  56.  
  57.   -  Better documentation, including an introduction to
  58.      multi-threaded programming
  59.   
  60.   -  More examples
  61.  
  62.   -  Implementation of bright suggestions from the Internet
  63.      community!
  64.  
  65. Changes in 0.91:
  66.  
  67.   -  Proper .pkg installation process
  68.  
  69.   -  Beta extended to Aug 31
  70.  
  71. Changes in 0.9:
  72.  
  73.   -  WARNING: The size of most of the classes have changed.
  74.      You might as well recompile everything (again)
  75.  
  76.   -  A bug in the Object category preventing more than one
  77.      non-threadkit object from being locked at a time (sigh)
  78.      has been fixed
  79.  
  80.   -  The locking semantics shared by all classes have been
  81.      extended to support waiting for particular states
  82.  
  83.   -  The documentation has been significantly updated
  84.   
  85.   -  A mechanism for controlling the Obj-C runtime
  86.      multithreading policy has been added to TKThread
  87.  
  88. Changes in 0.8:
  89.  
  90.   -  WARNING: The size of the TKObject class has changed.
  91.      You might as well recompile everything :-)
  92.  
  93.   -  Suspending threads by locking them was forcing extended
  94.      busy-waiting that brought the system to its knees as
  95.      thread priorities were pushed through the roof (more fun
  96.      to describe than experience).  Locks in the ThreadKit no
  97.      longer busy-wait
  98.  
  99. Changes in 0.7:
  100.  
  101.   -  WARNING: The size of the TKThread class has changed, as
  102.      has its superclass.  Any subclasses need to be recompiled
  103.  
  104.   -  Thread control mechanisms (for suspending, resuming,
  105.      yielding and exiting threads) have been implemented in
  106.      the TKThread class
  107.  
  108.   -  Implemented a protocol (ThreadLocking) that TKObject,
  109.      TKApplication and the ThreadLocking Object category all
  110.      conform to
  111.  
  112.   -  A lingering bug that sometimes caused problems with
  113.      applications that created threads during "awakeFromNib"
  114.      messages has been fixed (note that this was what caused
  115.      occasional unpredictable behaviour in the SampleTest demo
  116.      app)
  117.  
  118.   -  A mechanism for locking ALL threads to ensure integrity
  119.      of REALLY dangerous actions (eg: dynamic linking of new
  120.      classes) has been added to the TKThread class
  121.  
  122. Changes in 0.5:
  123.  
  124.   -  WARNING: The size of the TKApplication and TKObject
  125.      classes has changed, any subclasses need to be recompiled
  126.  
  127.   -  WARNING: For consistency between the growing number of
  128.      ThreadKit classes and a desire to avoid naming conflicts, all
  129.      locking and unlocking methods have been renamed "threadLock"
  130.      and "threadUnlock" respectively
  131.  
  132.   -  WARNING: For consistency with AppKit methods, the
  133.      TKThread method "initFor:performing:" has been renamed
  134.      "initFor:perform:"
  135.  
  136.   -  Trying to lock the appkit from the main thread is now
  137.      harmless
  138.  
  139.   -  Added locking semantics to ALL objects through the
  140.      Object(ThreadLocking) category
  141.  
  142.   -  Added named resource locking via the TKResource class
  143.  
  144.   -  The "tryThreadLock" method has been added to all classes
  145.      in order to attempt locking with non-blocking semantics
  146.  
  147. Changes in 0.2:
  148.  
  149.   -  Class names changed to shorten names and prefix all
  150.      ThreadKit classes with "TK"
  151.  
  152.   -  More robust error checking (now only the thread that locked
  153.      the AppKit can unlock it!)
  154.  
  155.   -  Threads are discarded properly when finished
  156.   
  157.   -  Nested locking of TKApplication is now supported
  158.  
  159.   -  Real documentation written & included
  160.   
  161.   -  The Objective-C runtime is now made thread-safe only when
  162.      more than one thread is running
  163.  
  164.   -  Changes to the "SortingInAction" example code to use the
  165.      ThreadKit are supplied.  See
  166.      ThreadKit/Samples/SortingInAction/README for details
  167.  
  168.   -  Beta period extended to July 31
  169.  
  170. Changes in 0.11:
  171.  
  172.   -  Now supplied in single-architecture as well as
  173.      multi-architecture form for those running 3.0
  174.  
  175. ---
  176.  
  177. Feel free to write with comments, suggestions, criticisms.  Whatever.
  178.  
  179. Blake Stone
  180. 219 Edgevalley Mews N.W.
  181. Calgary, Alberta, Canada
  182. T3A-5E5
  183.  
  184. bstone@acs.ucalgary.ca
  185.