a1200   NEWS   APPS   DOCS   ABOUT
a1200
----
a1200
----
Autodocs
 Other:
 queue-handler
  queue_handler
Include
GuruMeditation
Docs » Autodocs » queue-handler » queue_handler

NAME

       queue_handler -- an 'infinite' pipe (FIFO) handler. (V37)

SYNOPSIS

       Open("PIPE:[channel_name][[/[buf_size]][/max_buffers]]]");

FUNCTION

       Queue-handler takes data from the output channel, buffers it up,
allocating more memory as needed, and sends it to the input channel,
as requested by the applications. Queue-handler never locks the output
channel unless max_buffers was specified. Buffer size can be
specified only on the first reference to a particular channel.
Queue-handler works by invoking a seperate process every time an
open packet is received, and uses a FIFO buffer pool approach to
track the actual data.

INPUTS

       channel_name - unique channel name to specify. Must begin with a
non-numeric character. The channel_name is
optional.
buf_size - Size in bytes of the buffers to allocate
(default is 4096). The buf_size is optional.
max_buffers - maximum number of buffers allowed. Will suspend
the output channel if exceeded. A max_buffers value of 0
indicates there should be no fixed limit on the number
of buffers allocated.
PACKETS
ACTION_FINDINPUT
ACTION_FINDOUTPUT
ACTION_FINDUPDATE
ACTION_READ
ACTION_WRITE
ACTION_END
ACTION_IS_FILESYSTEM
MOUNTLIST ENTRIES
This is the default mountlist entry used for Queue-Handler:
PIPE: Handler = L:Queue-Handler
Priority = 5
StackSize = 3000
GlobVec = -1
#
Below is an extended mountlist entry which lets you specify a default
number of buffers, and their size. There are some extra fields added
at the end of the mountlist entry which aren't used for anything, but
the Mount command requires that these fields be present. In this
mountlist, the "Buffers" field indicates the default maximum number
of buffers, and "SectorSize" indicates the size of these buffers.
PIPE: FileSystem = L:Queue-Handler
Priority = 5
StackSize = 3000
GlobVec = -1
SectorSize = 1024
Buffers = 2
/* these are unused, but required by Mount */
Surfaces = 1
SectorsPerTrack = 1
LowCyl = 0
HighCyl = 1
Device = ""
Unit = 0
#

EXAMPLE

       From process 1:
list >pipe: work: all
From process 2:
type pipe:
To gather the results of several C compilations:
lc >pipe:ll foo
lc >pipe:ll bar
lc >pipe:ll road
lc >pipe:ll kill
type pipe:ll
To use channel names:
list >pipe:crazy
copy #?.c to >pipe:all_c/32000 ;Specifies a channel 'all_c' and
;a buffer size of 32000
;bytes
To set a limit on the number of buffers to 5:
dir >pipe://5 ; create a channel without a channel-name, and
; only allow 5 buffer entries.

BUGS

       Full checking is not done to ensure that the application can't read
from a write channel or vice-versa. The results of this operation
shall be undefined. Don't do it.

Comments

Name:
E-mail: Use this if you want a message if you get a response, will not be shown.
Comment:
Select correct short for:

Paradox

DC
PDX
RZR
AOA

Comments:

$VER: d0.se 1.14 Copyright © 2011-2024 Tobias Geijersson support at d0 dot se