What is the response when use delay within fork join

// if execute below code , there is no info from second thread ,please correct me if i am wrong , what happen when we use use wait within fork join

module fork_join;
bit signal=0;
  
  initial begin
    $display("-----------------------------------------------------------------");
    fork
      //Process-1
      $display($time,"\t entering fork Started");
      wait(signal==1)
      begin
        $display($time,"\tProcess-1 Started");
        #5;
        $display($time,"\tProcess-1 Finished");
      end
      
      //-------------------
      //Process-2
      //-------------------
      begin
        $display($time,"\tProcess-2 Started");
        #20;
        $display($time,"\tProcess-2 Finished");
      end
    join
    
    #25;
    signal=1;
    $display($time,"\tOutside Fork-Join");
    $display("-----------------------------------------------------------------");
    $finish;
  end
endmodule

In reply to narendravk28:

The initial construct creates a parent process1 which has the fork/join. The fork/join suspends process1 until all of the child processes it spawns have terminated. One of those processes is suspended waiting for signal==1. That never happens because the statement that assigns signal to 1 is in the suspended process1.

You need to either change the fork/join to a fork/join_any or fork/join_none, or put the assignment signal=1 into another process that does not get suspended (either another initial construct or another process inside your fork).

Note that there are 3 process created by your fork/join. The first $display statement, and the two begin/end compound statements. The wait(signal==1) is part of the first begin/end, not a separate statement because there is no semicolon after it.