DulGetPathW - Get a path to a task, blocking the current action until it is complete.


Get a path to a task, blocking the current action until it is complete.


This function returns the path to the specified task, setting it up with the specified buffer sizes. If the action or UFACE context must wait for this to occur, then it is blocked (using DitsActionWait() or DitsUfaceWait). Such blocking allows the task to continue processing other actions and UFACE context messages.

In in an action context, action is NOT unblocked when a KICK is received for the action which invokes it, but the Kick handler may cause the action to be rescheduled and the action will then be unblocked when the reschedule occurs. This routine will return the status DUL__UNEXPECTED if this occurs.

Note that if another action/UFACE context calls this or assocaited routines (anything that invokes DitsActionWait/DitsUfaceWait) while this call is outstanding, then that call must unblock before this call will be unblocked - i.e. first in last out.

As of DUL version 3.40, we use the new DitsActionTransIdWait() and DitsUfaceTransIdWait() instead of the older versions which don't allow the transaction ID to be specified. This means we only return when the transaction completes or the timeout occurs, regardless of what other events come in. This is normally the required behaviour.




(void) = DulGetPathW (task,node,flags,info,timeout,path,status)


(">" input, "!" modified, "W" workspace, "<" output)

>taskchar *The name of the task to get a path to.
>nodechar *The node the task is on. This is optional. If supplied as 0, then it is assumed that either the node is specified in the task argument (using stardard internet format) or the task is known locally.
>flagsintFlags to DitsPathGet. Se that routine for details.
>infoDitsPathInfoType *Use this structure to supply various details for the GetPath operation. See DitsPathGet for details

>timeoutdoubleIf positive, this is a timeout to apply to the get path operation.

<pathDitsPathType *The path is returned here.
!statusStatusType *Modified status.

Include files


Prior requirements

Dits must have been initialised.

See Also

Dul library document, DulMessageW(3), DulLoadW(3), DitsPathGet(3), DitsActionTransIdWait(3), DitsUfaceTransIdWait(3), Dits specification.


Tony Farrell, AAO

Click here for the DRAMA home page and here for the AAO home page.

 For more information, contact tjf@aao.gov.au