SET INSTANCE

From STX Wiki
< Programmer Guide‎ | Shell Items‎ | Instance
Revision as of 18:31, 18 November 2010 by Admin (talk | contribs) (1 revision: Initial import)
Jump to navigationJump to search

SET INSTANCE

See INSTANCE Item Attributes for a list of instance item attributes.

SET instance function [arguments]

Call the member function function of the instance. The function must be a member of the instance's class or of one of its base classes (searched in reverse order).

SET instance class::function [arguments]

Call the member function function of class class. The class must be a base class of instance. This call style should be used to call an overridden base-class member function (i.e. reverse search for member function is not performed).

SET instance ::function [arguments]

To call a member function of the parent class without specifying the name of the parent class, the following short command format can be used.

On entry into a member function, the following variables are defined:#MAC name of macro (= name of class) #THIS name of the instance item #ARGV arguments passed to the member function====LOCK====

SET instance LOCK

Lock the instance access. If a instance is locked, only the shell which locked it has access to its content. The instance must be unlocked after finishing the 'critical' processing section.

TRYLOCK

SET instance TRYLOCK [ timeout ] [ /S ]

Try to lock the instance item instance. If no timeout is specified, TRYLOCK returns immediately. If the caller already *holds* the lock, TRYLOCK will fail immediately. This makes sense because, since the caller is the owner, it cannot release it whilst its waiting.

timeout
If specified, TRYLOCK will try to get a lock once per millisecond until it is either successful, or timeout milliseconds have elapsed.
/S
If specified, errors will generate warning messages rather than error messages. See The Silent Flag for details.

Return Codes:

0 - an unlocked instance has been successfully locked. 381 - Error: if the instance could not be locked due to it being locked by someone else. 382 - Warning: identical to 381, except that this returned when the /S flag is specified. 383 - Error: if the instance could not be locked due to it being locked by the caller. 384 - Warning: identical to 383, except that this returned when the /S flag is specified.

Example:

"SET $#instance TRYLOCK 5000" will try hard to lock the instance. If it does not succeed within 5000ms (i.e., five seconds), it will fail - but it will not fail earlier.

The TRYLOCK command is intended for safe multithreading without race conditions occurring====UNLOCK====

SET instance UNLOCK

Unlock instance access.

Navigation menu

Personal tools