FunctionPackage: mpToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.0
This page is new in 10.0.


Arguments: label &rest data

This function makes an entry in the current active memory log and returns nil. If there is no current active memory log, this function does nothing and returns nil.

The entry consists the following values, with the first 4 always recorded and as many of the rest (data arguments) as will fit in the current width specification of the memory log.

  1. thread index of the current thread
  2. process-name of the current thread
  3. a timestamp (milliseconds since the last call to memlog-init)
  4. the label
  5. as many data arguments as fit in the current width specification of the memory log

The memlog function is very short and does no consing in order to minimize the disturbance caused by introducing tracing in an application. It does necessarily require a memory barrier in order to access the shared log object and this operation is likely to disturb to some extent the time behavior of a complex multi-threaded application.

Note also that if modifiable objects are recorded in the log, when the log is examined, the values seen will be the values at the time of the examination.

This function will make an entry in the log if it can gain a lock on the memory log within the limits specified when the log is initialized. If a lock cannot be obtained, the skipped count is incremented. The default setting is to iterate 5 times on the lock attempt, yield once and try 5 more iterations. This behavior is modified with the yield-rate and yield arguments to memlog-init.

See Memlog: A Facility for Minimally Intrusive Monitoring of Complex Application Behavior in smp.htm for more information.

See multiprocessing.htm for general information on multiprocessing in Allegro CL.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page is new in the 10.0 release.
Created 2019.8.20.

Allegro CL version 10.0
This page is new in 10.0.