home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / de / comp / sys / amiga / misc / 7096 < prev    next >
Encoding:
Text File  |  1993-01-03  |  2.5 KB  |  66 lines

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!smurf.sub.org!hugis!castle.franken.de!forge.franken.de!Barnard
  2. From: Barnard@forge.franken.de (Henning Schmiedehausen)
  3. Newsgroups: de.comp.sys.amiga.misc
  4. Subject: Semaphores - Testen auf Belegt?
  5. Message-ID: <Omwes*Mr0@forge.franken.de>
  6. Date: Sun, 03 Jan 1993 00:43:14 GMT
  7. Organization: Barnard's Software Forge (ECG038)
  8. X-Newsreader: Arn V1.00
  9. Lines: 55
  10.  
  11. [  Ja,  ich  spiele  halt  derzeit  mit den Dingern rum, deswegen kommen auch
  12. Fragen dazu.  Mir sind halt Unix Portierungen zu langweilig...  :) ]
  13.  
  14.  
  15. Der  Matt hat Locking-Funktionen erfunden, und diese sind auch sowohl im UUCP
  16. Paket,  als  auch  im  parnet.device,  als  auch  in der DICE Distribution zu
  17. bewundern.   Dabei  handelt es sich um 'spinning locks' (laut parnet.device),
  18. die insgesamt aus folgenden Funktionen bestehen:
  19.  
  20.    NAME
  21.     LockAddr    -   Gain Exclusive, Fast semaphore (bit 0)
  22.     TryLockAddr    -   Non-Blocking version of LockAddr
  23.     UnlockAddr    -   Release exclusive semaphore, bit 0
  24.  
  25.    SYNOPSIS
  26.     void LockAddr(lck);
  27.     int r = TryLockAddr(lck);
  28.     void UnlockAddr(lck);
  29.  
  30.     long lck[2];
  31.  
  32.    FUNCTION
  33.     These are custom DICE functions used for inter-task locking semaphores
  34.     in programs that need such functions.  These routines are somewhat
  35.     faster than standard Amiga semaphore routines and take less memory,
  36.     though at the cost of DICE specific.
  37.  
  38. [... bla bla bla ...]
  39.  
  40. In  jedem  Fall,  es gibt dort eine Funktion 'TryLockAddr'.  Mit der kann ich
  41. feststellen,  ob  ein  Lock  gerade  aktiv  ist, ohne meinen Task schlafen zu
  42. legen.  
  43.  
  44. Frage:  Geht das auch mit den exec-Semaphoren?  Wenn ja, wie?  Ich hΣtte hier
  45. eine  Semaphore (die PacketTaskBusy Semaphore ;) ) die ich antesten mⁿ▀te, ob
  46. sie  blockiert  ist  (wenn ja, dann mu▀ ich das SANA-II packet auf Eis legen)
  47. oder nicht.  Wie?  Sachdienliche Hinweise an mich..
  48.  
  49.     Alloooooooha!
  50.         Henning
  51.  
  52. P.S.:    Jetzt werden wir mal sehen, was der CPR taugt. 100 KBytes Quelle aus
  53.     Assembler und C gemischt, mit insgesamt fⁿnf verschiedenen Tasks, die
  54.     sich gegenseitig prⁿgeln. Bin gespannt, ob er das auf die Reihe kriegt...
  55.     (Und wieviele Compiler-Fehler ich noch finde. Ich will meinen Manx
  56.     Compiler zurⁿck)
  57.  
  58. P.P.S: Versucht mal, die parnet.device Quellen mit dem SAS C 6.1 zu kompilieren.
  59.     Versucht vor allem, euch ein List-File ausgeben zu lassen. =:(
  60.  
  61. -- 
  62.   \\ _ Henning Schmiedehausen - barnard@forge.franken.de _ // Amiga - 
  63.    \X/ --- Home of Barnard's Software Forge - ECG038 --- \X/  Learning to Fly
  64.  
  65. These SUN's ain't gonna shine anymore. 
  66.