SET INSTANCE
Instance Item | ||
---|---|---|
NEW | SET | ATTRIBUTES |
Calling a member function
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]
Call a member function of the parent class without specifying the name of the parent class.
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
Locking / Unlocking Instance Items
The use of lock/unlock is only important, if an instance item is (or may be) used by more than one thread. In STx shells, spu items and display item are running in own thread.
SET inst LOCK
Lock the instance item inst. The execution of the calling shell is stopped, until the item can be locked. If locked, only the shell which locked it has access to the item until it is explicitly unlocked with the command UNLOCK
. Always beware deadlocks.
SET inst LOCK timeout
Try to lock the instance item inst, but wait only the specified time. This command returns 0 (success) if the lock request was successful within the timeout, and a non-zero error code if not. If the caller already holds the lock, the command will fail immediately. This makes sense because, since the caller is the owner, it cannot release it whilst its waiting. The argument timeout specifies the maximum lock-timeout in milliseconds and must be a number greater than zero.
SET inst UNLOCK
Unlock the instance item inst. Note: Its very important that for each successful LOCK
an UNLOCK
is called!