1 02/25/85  signal_io_
 2 
 3 
 4 The signal_io_ I/O module signals a condition whenever an iox_ I/O
 5 operation is performed.  The condition has an info structure that
 6 allows a handler of the condition to either abort the operation or
 7 complete it by setting values in the structure and restarting the
 8 condition signal.  When the condition is restarted, the signal_io_ I/O
 9 module returns control to the caller of iox_ and returns the output
10 data in the structure as corresponding parameters of the iox_ call.
11 
12 Applications using this I/O module must have a handler on the stack at
13 all times to handle the signal_io_ condition.
14 
15 
16 Attach description:
17    signal_io_
18 
19 
20 Open operation:
21 All opening modes are supported.
22 
23 I/O OPERATIONS (get_chars, get_line, put_chars, read_record,
24 rewrite_record, delete_record, read_length, position, seek_key,
25 read_key, write_record, control, modes)
26 
27 All operations are supported in appropriate opening modes.  See NOTES
28 for a discussion of handing the condition associated with these
29 operations.
30 
31 
32 Notes:  When this module is called through iox_ to perform an I/O
33 operation as listed above, it signals the "signal_io_" condition with
34 an info structure given here.  The condition is restartable.
35 
36 Applications using this module must establish a handler for the
37 condition that calls find_condition_info_ to locate the info structure.
38 If the condition is not handled, the default_error_handler_ will print
39 a default error message, unless the condition is associated with
40 user_i/o, user_output, user_input or error_output.  For these I/O
41 switches, terminates the process.
42 
43 The returned_error_code in signal_io_info is initially set to
44 error_table_$action_not_performed, so if the condition is restarted
45 without first having the structure filled in, the iox_ call will return
46 error_table_$action_not_performed.
47 
48 
49 This condition does NOT pass through the condition walls established
50 when for new command levels.  If the application is attaching, for
51 example, user_i/o via this module, it must establish a command level
52 intermediary procedure (via cu_$set_cl_intermediary) that establishes a
53 new handler for the signal_io_ condition before calling the standard
54 intermediary (located via cu_$get_cl_intermediary).
55