Changeset 10163


Ignore:
Timestamp:
Jul 20, 2008, 12:08:07 AM (11 years ago)
Author:
gb
Message:

Add a section for JOIN-PROCESS (ticket:316)
Not really a documentation issue: a thread's termination-semaphore
can apparently be signaled twice (once when the lisp code is exiting
and again in the kernel), making the issue of "how many other threads
can reliably wait for thread termination" a confusing one.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/doc/src/threads.xml

    r8993 r10163  
    17411741           
    17421742            <simplelist type="inline">
    1743               <member><xref linkend="f_process-wait-with-timeout"/></member>
     1743<             <member><xref linkend="f_process-wait-with-timeout"/></member>
    17441744            </simplelist>
    17451745          </refsect1>
     
    20202020              Otherwise, <varname>function</varname> will be tested repeatedly,
    20212021              in the same
    2022               kind of test/yield loop as in <xref linkend="f_process-wait"/>>
     2022              kind of test/yield loop as in <xref linkend="f_process-wait"/>
    20232023              until either <varname>function</varname> returns true,
    20242024              or the duration <varname>ticks</varname> has been exceeded.
     
    32583258    </refentry>
    32593259
     3260    <refentry id="f_join-process">
     3261      <indexterm zone="f_join-process">
     3262        <primary>join-process</primary>
     3263      </indexterm>
     3264
     3265      <refnamediv>
     3266        <refname>JOIN-PROCESS</refname>
     3267        <refpurpose>Waits for a specified process to complete and
     3268        returns the values that that process's initial function
     3269        returned.</refpurpose>
     3270        <refclass>Function</refclass>
     3271      </refnamediv>
     3272
     3273      <refsynopsisdiv>
     3274        <synopsis><function>join-process</function> process
     3275        &optional; default => values</synopsis>
     3276      </refsynopsisdiv>
     3277     
     3278      <refsect1>
     3279        <title>Arguments and Values</title>
     3280
     3281        <variablelist>
     3282          <varlistentry>
     3283            <term>process</term>
     3284            <listitem>
     3285              <para>a process, typically created by <xref
     3286              linkend="f_process-run-function"/> or by <xref
     3287              linkend="f_make-process"/></para>
     3288            </listitem>
     3289          </varlistentry>
     3290          <varlistentry>
     3291            <term>default</term>
     3292            <listitem>
     3293              <para>A default value to be returned if the specified
     3294              process doesn't exit normally.</para>
     3295            </listitem>
     3296          </varlistentry>
     3297          <varlistentry>
     3298            <term>values</term>
     3299            <listitem>
     3300              <para>The values returned by the specified process's
     3301              initial function if that function returns, or the value
     3302              of the default argument, otherwise.</para>
     3303            </listitem>
     3304          </varlistentry>
     3305        </variablelist>
     3306      </refsect1>
     3307
     3308      <refsect1>
     3309        <title>Description</title>
     3310        <para>Waits for the specified process to terminate.  If the
     3311        process terminates "normally" (if its initial function
     3312        returns), returns the values that that initial function
     3313        returnes.  If the process does not terminate normally (e.g.,
     3314        if it's terminated via <xref linkend="f_process-kill"/> and a
     3315        default argument is provided, returns the value of that
     3316        default argument.  If the process doesn't terminate normally
     3317        and no default argument is provided, signals an error.</para>
     3318       
     3319        <para>A process can't successfully join itself, and only one
     3320        process can successfully receive notification of another process's
     3321        termination.</para>
     3322      </refsect1>
     3323    </refentry>
     3324
    32603325  </sect1>
    32613326</chapter>
Note: See TracChangeset for help on using the changeset viewer.