> ## Name

> cgSetLockingPolicy - set locking policy

> ## Synopsis

>     #include <Cg/cg.h>

>     CGenum cgSetLockingPolicy( CGenum lockingPolicy );

> ## Parameters

> lockingPolicy
>   An enumerant describing the desired locking policy for the library. The following enumerants are allowed:
>   CG_THREAD_SAFE_POLICY
>     Locks will be used to serialize thread access to the library.
>   CG_NO_LOCKS_POLICY
>     Locks will not be used.

> ## Return Values

> Returns the previous locking policy, or CG_UNKNOWN if an error occurs.

> ## Description

> cgSetLockingPolicy allows an application to change the locking policy used by the Cg library. The default policy is CG_THREAD_SAFE_POLICY, meaning a lock is used to serialize access to the library by mulitiple threads. Single threaded applications can change this policy to CG_NO_LOCKS_POLICY to avoid the overhead associated with this lock. Multithreaded applications should never change this policy.

> ## Examples

>     /* multithreaded apps should *never* do this */
>     cgSetLockingPolicy(CG_NO_LOCKS_POLICY);

> ## Errors

> CG_INVALID_ENUMERANT_ERROR is generated if lockingPolicy is not CG_NO_LOCKS_POLICY or CG_THREAD_SAFE_POLICY.

> ## History

> cgSetLockingPolicy was introduced in Cg 2.0.

> ## See Also

> cgGetLockingPolicy