home *** CD-ROM | disk | FTP | other *** search
- 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
- From: Barnard@forge.franken.de (Henning Schmiedehausen)
- Newsgroups: de.comp.sys.amiga.misc
- Subject: Semaphores - Testen auf Belegt?
- Message-ID: <Omwes*Mr0@forge.franken.de>
- Date: Sun, 03 Jan 1993 00:43:14 GMT
- Organization: Barnard's Software Forge (ECG038)
- X-Newsreader: Arn V1.00
- Lines: 55
-
- [ Ja, ich spiele halt derzeit mit den Dingern rum, deswegen kommen auch
- Fragen dazu. Mir sind halt Unix Portierungen zu langweilig... :) ]
-
-
- Der Matt hat Locking-Funktionen erfunden, und diese sind auch sowohl im UUCP
- Paket, als auch im parnet.device, als auch in der DICE Distribution zu
- bewundern. Dabei handelt es sich um 'spinning locks' (laut parnet.device),
- die insgesamt aus folgenden Funktionen bestehen:
-
- NAME
- LockAddr - Gain Exclusive, Fast semaphore (bit 0)
- TryLockAddr - Non-Blocking version of LockAddr
- UnlockAddr - Release exclusive semaphore, bit 0
-
- SYNOPSIS
- void LockAddr(lck);
- int r = TryLockAddr(lck);
- void UnlockAddr(lck);
-
- long lck[2];
-
- FUNCTION
- These are custom DICE functions used for inter-task locking semaphores
- in programs that need such functions. These routines are somewhat
- faster than standard Amiga semaphore routines and take less memory,
- though at the cost of DICE specific.
-
- [... bla bla bla ...]
-
- In jedem Fall, es gibt dort eine Funktion 'TryLockAddr'. Mit der kann ich
- feststellen, ob ein Lock gerade aktiv ist, ohne meinen Task schlafen zu
- legen.
-
- Frage: Geht das auch mit den exec-Semaphoren? Wenn ja, wie? Ich hΣtte hier
- eine Semaphore (die PacketTaskBusy Semaphore ;) ) die ich antesten mⁿ▀te, ob
- sie blockiert ist (wenn ja, dann mu▀ ich das SANA-II packet auf Eis legen)
- oder nicht. Wie? Sachdienliche Hinweise an mich..
-
- Alloooooooha!
- Henning
-
- P.S.: Jetzt werden wir mal sehen, was der CPR taugt. 100 KBytes Quelle aus
- Assembler und C gemischt, mit insgesamt fⁿnf verschiedenen Tasks, die
- sich gegenseitig prⁿgeln. Bin gespannt, ob er das auf die Reihe kriegt...
- (Und wieviele Compiler-Fehler ich noch finde. Ich will meinen Manx
- Compiler zurⁿck)
-
- P.P.S: Versucht mal, die parnet.device Quellen mit dem SAS C 6.1 zu kompilieren.
- Versucht vor allem, euch ein List-File ausgeben zu lassen. =:(
-
- --
- \\ _ Henning Schmiedehausen - barnard@forge.franken.de _ // Amiga -
- \X/ --- Home of Barnard's Software Forge - ECG038 --- \X/ Learning to Fly
-
- These SUN's ain't gonna shine anymore.
-