How does an imported task disabled?

2012 Sv LRM discusses about svIsDisabledState() in section 35.9 and also describes it in Annexe 1.3 Source code as.


  • Returns 1 if the current execution thread is in the disabled state.
  • Disable protocol must be adhered to if in the disabled state.
    XXTERN int svIsDisabledState( void );

Please provide any practical scenario in which it gets used, when the task is disabled.
In another words , what causes the imported task to get disabled?

In reply to absingh:

The only reason to ever import a C task is if you plan to have that task call an exported time-consuming SystemVerilog-task. In that case, the usual reasons for disabling a task, regardless of whether using the DPI or not is for a timeout or reset;

  #1000ms ->timeout;
disable fork