COMPILATION LISTING OF SEGMENT smart_alloc_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1745.8 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 /* */ 14 /* N__a_m_e: smart_alloc_ */ 15 /* */ 16 /* A procedure which performs allocations within areas in an intelligent fashion. */ 17 /* */ 18 /* E__n_t_r_y: smart_alloc_$smart_alloc_ */ 19 /* */ 20 /* This procedure uses alloc_ to perform an allocation within an area. If the */ 21 /* allocation fails because the area is full, the procedure signals the "area" condition, */ 22 /* and passes an information structure for use by the handler. The structure contains */ 23 /* a pointer to the area which is full when the handler is signalled. On return, */ 24 /* the allocation in reattempted in the area pointed to by this pointer. The handler */ 25 /* may have changed the pointer to point to a new area, or it may have created more */ 26 /* room in the original area. If the allocation fails again, the"area condition is */ 27 /* re-signalled, and the process continues. */ 28 /* */ 29 /* U__s_a_g_e */ 30 /* */ 31 /* All procedures which use smart_alloc_ must have the following rename option in */ 32 /* their procedure statement: */ 33 /* */ 34 /*