mirror of
https://github.com/PDP-10/its.git
synced 2026-01-19 17:39:17 +00:00
46 lines
1.5 KiB
Plaintext
46 lines
1.5 KiB
Plaintext
'<PCODE "1QUEUE">
|
|
|
|
<PACKAGE "PRIORITY-QUEUE">
|
|
|
|
<ENTRY MAKE-Q REM-TOP-OF-Q REM-FROM-Q ADD-TO-Q CHANGE-PRIORITY FLUSH-Q>
|
|
|
|
<SETG EMPTY-SLOT (*400000000000* *400000000000*)>
|
|
|
|
<GDECL (EMPTY-SLOT) <LIST FIX FIX>>
|
|
|
|
"FLUSH-Q reinitializes a queue to be empty"
|
|
|
|
<SETG FLUSH-Q %<RSUBR!- '[ %<PCODE!- "1QUEUE" 0> FLUSH-Q #DECL ("VALUE" <
|
|
UVECTOR [REST <LIST FIX FIX>]> <UVECTOR [REST <LIST FIX FIX>]>) %<RGLOC
|
|
EMPTY-SLOT T> QUEUE-SIZE OUTCHAN "Growing queue" T]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FLUSH-Q PGLUE ![1072693248!]>>
|
|
|
|
|
|
"MAKE-Q creates a queue"
|
|
|
|
<SETG MAKE-Q %<RSUBR-ENTRY '[FLUSH-Q MAKE-Q #DECL ("VALUE" <UVECTOR [REST <LIST
|
|
FIX FIX>]> "OPTIONAL" FIX <LIST FIX FIX>)] 46>>
|
|
|
|
"REM-TOP-OF-Q removes the top task from the queue, the rest moving up"
|
|
|
|
<SETG REM-TOP-OF-Q %<RSUBR-ENTRY '[FLUSH-Q REM-TOP-OF-Q #DECL ("VALUE" ANY <
|
|
UVECTOR [REST <LIST FIX FIX>]>)] 108>>
|
|
|
|
<SETG REM-FROM-Q %<RSUBR-ENTRY '[FLUSH-Q REM-FROM-Q #DECL ("VALUE" ANY <UVECTOR
|
|
[REST <LIST FIX FIX>]> <LIST FIX FIX>)] 125>>
|
|
|
|
<SETG ADD-TO-Q %<RSUBR-ENTRY '[FLUSH-Q ADD-TO-Q #DECL ("VALUE" <UVECTOR [REST <
|
|
LIST FIX FIX>]> <UVECTOR [REST <LIST FIX FIX>]> <LIST FIX FIX> "OPTIONAL" FIX)]
|
|
212>>
|
|
|
|
<SETG CHANGE-PRIORITY %<RSUBR-ENTRY '[FLUSH-Q CHANGE-PRIORITY #DECL ("VALUE" ANY
|
|
<UVECTOR [REST <LIST FIX FIX>]> FIX FIX)] 327>>
|
|
|
|
<SETG BUB-DOWN %<RSUBR-ENTRY '[FLUSH-Q BUB-DOWN #DECL ("VALUE" ANY <UVECTOR [
|
|
REST <LIST FIX FIX>]> FIX)] 379>>
|
|
|
|
<SETG BUB-UP %<RSUBR-ENTRY '[FLUSH-Q BUB-UP #DECL ("VALUE" ANY <UVECTOR [REST <
|
|
LIST FIX FIX>]> FIX)] 500>>
|
|
|
|
<ENDPACKAGE>
|