Read Me - Common Public License V1.0 - Copyright Notice(©)

start


                     +---------------+
                     V               |
>>-start(messagename---+-----------+-+-)-----------------------><
                       +-,argument-+

Returns a message object (see ) and sends it a [start] message to start concurrent processing. The object receiving the message [messagename] processes this message concurrently with the sender's continued processing.

The [messagename] can be a string or an array. If [messagename] is an array object, its first item is the name of the message and its second item is a class object to use as the starting point for the method search. For more information, see .

Any [argument] s are passed to the receiver as arguments for [messagename] in the order you specify them.

When the receiver object has finished processing the message, the message object retains its result and holds it until the sender requests it by sending a [result] message. For further details, see .

Object class - start method

world=.WorldObject~new
msg1=world~start("HELLO")                /* same as next line     */
msg2=.message~new(world,"HELLO")~~start  /* same as previous line */

say msg1~result           /* Produces Hello world 21:04:25.065000 */
                          /* for example                          */
say msg2~result           /* Produces Hello world 21:04:25.081000 */
                          /* for example                          */

::class 'WorldObject' public
::method hello
  return "Hello world" time('L')

Read Me - Common Public License V1.0 - Copyright Notice(©)