Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  spin.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * spin.h
 *    API for spinlocks.
 *
 *
 * The interface to spinlocks is defined by the typedef "slock_t" and
 * these macros:
 *
 * void SpinLockInit(volatile slock_t *lock)
 *  Initialize a spinlock (to the unlocked state).
 *
 * void SpinLockAcquire(volatile slock_t *lock)
 *  Acquire a spinlock, waiting if necessary.
 *  Time out and abort() if unable to acquire the lock in a
 *  "reasonable" amount of time --- typically ~ 1 minute.
 *
 * void SpinLockRelease(volatile slock_t *lock)
 *  Unlock a previously acquired lock.
 *
 * bool SpinLockFree(slock_t *lock)
 *  Tests if the lock is free. Returns true if free, false if locked.
 *  This does *not* change the state of the lock.
 *
 * Callers must beware that the macro argument may be evaluated multiple
 * times!
 *
 * Load and store operations in calling code are guaranteed not to be
 * reordered with respect to these operations, because they include a
 * compiler barrier.  (Before PostgreSQL 9.5, callers needed to use a
 * volatile qualifier to access data protected by spinlocks.)
 *
 * Keep in mind the coding rule that spinlocks must not be held for more
 * than a few instructions.  In particular, we assume it is not possible
 * for a CHECK_FOR_INTERRUPTS() to occur while holding a spinlock, and so
 * it is not necessary to do HOLD/RESUME_INTERRUPTS() in these macros.
 *
 * These macros are implemented in terms of hardware-dependent macros
 * supplied by s_lock.h.  There is not currently any extra functionality
 * added by this header, but there has been in the past and may someday
 * be again.
 *
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/storage/spin.h
 *
 *-------------------------------------------------------------------------
 */

#ifndef SPIN_H
#define SPIN_H

#include "storage/s_lock.h"


#define SpinLockInit(lock) S_INIT_LOCK(lock)

#define SpinLockAcquire(lock) S_LOCK(lock)

#define SpinLockRelease(lock) S_UNLOCK(lock)

#define SpinLockFree(lock) S_LOCK_FREE(lock)

#endif       /* SPIN_H */

Messung V0.5 in Prozent
C=88 H=99 G=93

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=752002