File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed
Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ const tests = [
66 'steps' ,
77 'exclusive' ,
88 'deadlock' ,
9+ 'recursive-deadlock' ,
910 'thread-main' ,
1011] ;
1112
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ const assert = require ( 'assert' ) . strict ;
4+
5+ const { locks } = require ( '..' ) ;
6+
7+ const TEST_TIMEOUT = 100 ;
8+
9+ module . exports = async ( ) =>
10+ new Promise ( resolve => {
11+ let flag1 = false ;
12+ let flag2 = false ;
13+
14+ ( async ( ) => {
15+ await locks . request ( 'E' , async ( ) => {
16+ flag1 = true ;
17+ await locks . request ( 'E' , async ( ) => {
18+ flag2 = true ;
19+ } ) ;
20+ } ) ;
21+ } ) ( ) ;
22+
23+ ( async ( ) => {
24+ setTimeout ( ( ) => {
25+ assert . strictEqual ( flag1 , true ) ;
26+ assert . strictEqual ( flag2 , false ) ;
27+ resolve ( ) ;
28+ } , TEST_TIMEOUT ) ;
29+ } ) ( ) ;
30+ } ) ;
You can’t perform that action at this time.
0 commit comments