
  PROCEDURE [INLINE] clp$find_block_via_handle
    (    handle: clt$block_handle;
     VAR block: ^clt$block;
     VAR block_in_current_task: boolean;
     VAR block_is_synchronous: boolean);

?? PUSH (LISTEXT := ON) ??

    block_is_synchronous := TRUE;
    block_in_current_task := TRUE;
    clp$find_current_block (block);
    WHILE (block <> NIL) AND (#OFFSET (block) <> handle.segment_offset) DO
      IF block^.kind = clc$task_block THEN
        block_in_current_task := FALSE;
        IF NOT block^.synchronous_with_parent THEN
          block_is_synchronous := FALSE;
        IFEND;
      IFEND;
      block := block^.previous_block;
    WHILEND;
    IF (block <> NIL) AND (block^.assignment_counter <>
          handle.assignment_counter) THEN
      block := NIL;
    IFEND;

  PROCEND clp$find_block_via_handle;

*copyc clt$block_handle
?? POP ??
*copyc clp$find_current_block

