Commit c50a620009b9dab493fe409b79f21e7821982b6d
1 parent
668d5d29ef
Exists in
master
Verbose on lock
Showing 1 changed file with 10 additions and 2 deletions Inline Diff
lib/mutex.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | const locks = require('locks'); | 3 | const locks = require('locks'); |
4 | const logger = require('komodo-sdk/logger'); | ||
4 | 5 | ||
5 | const mutexWaitForOK = locks.createMutex(); | 6 | const mutexWaitForOK = locks.createMutex(); |
6 | const mutexCommand = locks.createMutex(); | 7 | const mutexCommand = locks.createMutex(); |
7 | 8 | ||
8 | const mutexSubCommand = locks.createMutex(); | 9 | const mutexSubCommand = locks.createMutex(); |
9 | 10 | ||
10 | function setLockWaitForOK() { | 11 | function setLockWaitForOK() { |
12 | logger.verbose('Entering MUTEX OK'); | ||
11 | return new Promise((resolve) => { | 13 | return new Promise((resolve) => { |
12 | mutexWaitForOK.lock(() => { | 14 | mutexWaitForOK.lock(() => { |
15 | logger.verbose('MUTEX OK entered'); | ||
13 | resolve(true); | 16 | resolve(true); |
14 | }); | 17 | }); |
15 | }); | 18 | }); |
16 | } | 19 | } |
17 | 20 | ||
18 | function releaseLockWaitForOK() { | 21 | function releaseLockWaitForOK() { |
19 | try { | 22 | try { |
23 | logger.verbose('Leaving MUTEX OK'); | ||
20 | mutexWaitForOK.unlock(); | 24 | mutexWaitForOK.unlock(); |
21 | } catch (e) { | 25 | } catch (e) { |
22 | // | 26 | // |
23 | } | 27 | } |
24 | } | 28 | } |
25 | 29 | ||
26 | function setLockWaitForCommand() { | 30 | function setLockWaitForCommand() { |
31 | logger.verbose('Entering MUTEX Command'); | ||
27 | return new Promise((resolve) => { | 32 | return new Promise((resolve) => { |
28 | mutexCommand.lock(() => { | 33 | mutexCommand.lock(() => { |
34 | logger.verbose('MUTEX Command entered'); | ||
29 | resolve(true); | 35 | resolve(true); |
30 | }); | 36 | }); |
31 | }); | 37 | }); |
32 | } | 38 | } |
33 | 39 | ||
34 | function tryLockWaitForCommand() { | 40 | function tryLockWaitForCommand() { |
35 | return mutexCommand.tryLock(); | 41 | return mutexCommand.tryLock(); |
36 | } | 42 | } |
37 | 43 | ||
38 | 44 | ||
39 | function releaseLockWaitForCommand() { | 45 | function releaseLockWaitForCommand() { |
40 | try { | 46 | try { |
47 | logger.verbose('Leaving MUTEX Command'); | ||
41 | mutexCommand.unlock(); | 48 | mutexCommand.unlock(); |
42 | } catch (e) { | 49 | } catch (e) { |
43 | // | 50 | // |
44 | } | 51 | } |
45 | } | 52 | } |
46 | 53 | ||
47 | function setLockWaitForSubCommand() { | 54 | function setLockWaitForSubCommand() { |
55 | logger.verbose('Entering MUTEX SUBCOMMAND'); | ||
48 | return new Promise((resolve) => { | 56 | return new Promise((resolve) => { |
49 | mutexSubCommand.lock(() => { | 57 | mutexSubCommand.lock(() => { |
58 | logger.verbose('MUTEX SUBCOMMAND entered'); | ||
50 | resolve(true); | 59 | resolve(true); |
51 | }); | 60 | }); |
52 | }); | 61 | }); |
53 | } | 62 | } |
54 | 63 | ||
55 | function releaseLockWaitForSubCommand() { | 64 | function releaseLockWaitForSubCommand() { |
56 | // mutexSubCommand.unlock(); | ||
57 | |||
58 | try { | 65 | try { |
66 | logger.verbose('Leaving MUTEX SUBCOMMAND'); | ||
59 | mutexSubCommand.unlock(); | 67 | mutexSubCommand.unlock(); |
60 | } catch (e) { | 68 | } catch (e) { |
61 | // | 69 | // |
62 | } | 70 | } |
63 | } | 71 | } |
64 | 72 | ||
65 | exports.setLockWaitForOK = setLockWaitForOK; | 73 | exports.setLockWaitForOK = setLockWaitForOK; |
66 | exports.releaseLockWaitForOK = releaseLockWaitForOK; | 74 | exports.releaseLockWaitForOK = releaseLockWaitForOK; |
67 | 75 | ||
68 | exports.setLockWaitForCommand = setLockWaitForCommand; | 76 | exports.setLockWaitForCommand = setLockWaitForCommand; |
69 | exports.releaseLockWaitForCommand = releaseLockWaitForCommand; | 77 | exports.releaseLockWaitForCommand = releaseLockWaitForCommand; |
70 | exports.tryLockWaitForCommand = tryLockWaitForCommand; | 78 | exports.tryLockWaitForCommand = tryLockWaitForCommand; |
71 | 79 | ||
72 | exports.setLockWaitForSubCommand = setLockWaitForSubCommand; | 80 | exports.setLockWaitForSubCommand = setLockWaitForSubCommand; |