Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

_spin(3synch)

_spin_destroy(3synch)

_spin_init(3synch)

_spin_lock(3synch)

_spin_unlock(3synch)

synch(3synch)






       _spin_trylock(3synch)                          _spin_trylock(3synch)


       NAME
             _spin_trylock - conditionally lock a spin lock

       SYNOPSIS
             cc [options] -Kthread file
             #include <synch.h>
             int _spin_trylock(spin_t *lock);

          Parameters
             lock   pointer to spin lock to be locked

       DESCRIPTION
             _spin_trylock attempts once to lock the spin lock pointed to
             by lock.

             If lock is available, _spin_trylock will return successfully
             with lock locked.  If lock is already locked, _spin_trylock
             immediately returns EBUSY to the caller without acquiring lock
             or spinning.

             lock must previously have been initialized (see _spin_init).

          Return Values
             _spin_trylock returns zero for success and an error number for
             failure, as described below.

          Errors
             If one of the following conditions occurs, _spin_trylock
             returns the corresponding value:

             EBUSY    lock is already locked.

       USAGE
             Because spin locks waste system resources, most applications
             should use mutexes instead of spin locks for mutual exclusion.
             In general, _spin_trylock, like _spin_lock is used when the
             resources are held exclusively for such short durations that
             the expected spin is less costly than blocking and resuming
             the thread.

             Spin locks should only be used when there is a guarantee that
             the thread will not be preempted or blocked while holding a
             spin lock.





                           Copyright 1994 Novell, Inc.               Page 1













      _spin_trylock(3synch)                          _spin_trylock(3synch)


            The locks acquired with _spin_trylock should be released with
            _spin_unlock.

         Warnings
            Spin locks must not be used on a uniprocessor.  In the best
            case, a spin lock on a uniprocessor will waste resources,
            slowing down the owner of the lock; in the worst case, it will
            deadlock the processor.

      REFERENCES
            _spin(3synch), _spin_destroy(3synch), _spin_init(3synch),
            _spin_lock(3synch), _spin_unlock(3synch), synch(3synch)




































                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026