upc_lock_free function
#include <upc.h>
upc_lock_t *upc_lock_free(upc_lock_t *ptr);
The upc_lock_free function frees all resources associated with the dynamically
allocated upc_lock_t pointed to by ptr.
If ptr is a null pointer, no
action occurs.
Otherwise, if the argument does not match a pointer earlier
returned by the upc_global_lock_alloc or
upc_all_lock_alloc function,
or if the lock has been deallocated by a previous call to upc_lock_free,
the behavior is undefined.
upc_lock_free succeeds regardless of whether the referenced lock is currently
unlocked or currently locked (by any thread).
Any subsequent calls to locking functions from any thread using ptr have
undefined effects. This also applies to any thread currently calling upc_lock.