# NAME Global::MutexLock - A xs module to give perl global mutex-lock between crons or web-app's workers # SYNOPSIS use Global::MutexLock; # DESCRIPTION Global::MutexLock is a module to create os-level global mutex-lock for perl. You can lock anything between process to others, or web-applications, or threads,cron. Mutex-lock's pointer is stored in System V IPC. You should let the process to know the IPC-ID for locking. If you want to delete IPC-ID by yourself, please use 'ipcs','ipcrm'. # USAGE \# 0. use Global::MutexLock; use Global::MutexLock qw(mutex_create mutex_destory mutex_lock mutex_unlock); \# 1. create a new global mutex id \# tips: you can create an id, and use it in different crons or apps my $mutex_id = mutex_create(); \# 2. take a lock unless (mutex_lock($mutex_id)) { warn "lock error"; } \# 3. do something... \# ... \# 4. release lock unless (mutex_unlock($mutex_id)) { warn "release lock error"; } \# 5. destory mutex lock id \# you must do it. otherwise the IPC id will be leaved in system. \# or you can rm it by \`ipcrm -m IPCID\` \# you can find IPCID by \`ipcs\` mutex_destory($mutex_id); # LICENSE Copyright (C) itsusony. FreakOut. MIT LICENSE # AUTHOR itsusony <itsusony@fout.jp>