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