docs: added text for sync and threaded entry methods
[charm.git] / doc / charm++ / sync.tex
1
2 \section{Sync Entry Methods}
3 \label{sync}
4
5 Generally entry methods are invoked asynchronously and return void. Therefore,
6 while an entry method may send data back to its invoker, it does so by invoking
7 another asynchronous entry method on the invoking chare object.
8
9 However, it is possible to use \kw{sync} entry methods, which have blocking
10 semantics and can return data back to their invoker that is available when it
11 returns from blocking. This returned data must be in the form of a \charmpp
12 message. Because the caller of a sync entry method will block, it must execute
13 in a thread separate from the scheduler; that is, it must be a \kw{threaded}
14 entry method. If a sync entry method returns a value, it is provided as the
15 return value from the invocation on the proxy object:
16
17 \begin{alltt}
18  ReturnMsg* m;
19  m = A[i].foo(a, b, c);
20 \end{alltt}