|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 888 (0x378) Types: TextFile Notes: UNIX file Names: »jsend.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦2d53db1df⟧ UNIX Filesystem └─⟦this⟧ »hr/src/jlib/jsend.c«
#include <jlib.h> extern int myfd; extern struct jqueue sendq, runq, s_replyq; /* ** NOTE: ** managers upon receipt of a reply from screen mgr are expected to do: ** s_replyq.jq_head->j_m = m; where m is the reply they received ** from screen manager. ** jalert(&s_replyq); ** It is assumed by the sendmess that all the managers have ** declared and assigned 'myfd'. Also they have a 'struct jqueue sendq' ** for sendmess to jdoze on in case of EDBUSY or there are messages ** ahead in sendq not sent yet. ** Also note: a matching jalert(&sendq) in readmesg() has to be done, in ** EDATTN: leg of readmesg(). */ sendmess() { if ( MsgSender == WMGR+1 ) croak("\007sendmess: msg to self, cmd %d\n", MsgCmd); if( not sendq.jq_head){ if(ioctl( myfd, CIOSENDM, &Msg) == 0) return; if( errno != EDBUSY) croak("CIOSENDM errno=%d", errno); } jdoze(&sendq); }