in packages/@fbcmobile-ui/Hooks/useSingleResource.js [16:38]
export default function(useResource: () => void) {
const [resourceAcquired, setResourceAcquired] = useState(false);
// Unlike traditional locks, operations that fail to grab lock are skipped.
useEffect(() => {
if (resourceAcquired) {
useResource();
}
}, [resourceAcquired, useResource]);
const acquireResource = () => {
setResourceAcquired(true);
};
const releaseResource = () => {
setResourceAcquired(false);
};
return {
runOrSkip: acquireResource,
release: releaseResource,
};
}