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

## *current-thread*

Use of this variable is deprecated. Call excl:current-thread instead. If used, a warning will be signaled. the old description of this variable follows.

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-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version