Variable | Package: system | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## *current-thread*

The symbol `sys:*current-thread*` names a symbol-macro which when executed returns the current thread. Note, despite being called a "variable", this symbol does not have a value. Evaluating the symbol results in the current thread as a return value, but applying boundp to this symbol returns `nil` and applying symbol-value to it results in an error. (We call it a "variable" because we do not really have a documentation category that fits it otherwise.)

`sys:*current-thread*` is implemented as a symbol-macro because doing so is much more efficient, getting the value in just several instructions without even needing, on some platforms, a memory reference.

The distinction between thread and process is arcane, but the most important thing is this:

- Thread objects are simple static structures that contain the information used to schedule.
- Process objects are clos instances, allowing the application to define subclasses for whatever purpose.

See also `*current-process*`. See multiprocessing.htm for more information on multiprocessing.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version