Sends a message to the thread described by id. The message consists of a script that will be evaluated in the global scope of the master interpreter of that thread. Unless -async is specified, will wait for the script to be evaluated before allowing the current thread to continue. If varname is given, the given globally-resolved variable will be set with the outcome of executing the script in the asynchronous case, which is useful with vwait and trace. The -head option places the event at the front of the event queue rather than at the tail (the default), making it higher priority than normal; you hardly ever require this.
More information: manpage