@@ -11,9 +11,11 @@ export class JSaddleDevice implements Device {
1111 constructor (
1212 jsaddleListener : MessagePort ,
1313 jsaddleMsgBufArray : Uint8Array ,
14- jsaddleMsgBufArray32 : Uint32Array ) {
14+ jsaddleMsgBufArray32 : Uint32Array ,
15+ jsaddleMsgBufArrayInt32 : Int32Array
16+ ) {
1517 this . _file = new JSaddleDeviceFile ( this , jsaddleListener
16- , jsaddleMsgBufArray , jsaddleMsgBufArray32 ) ;
18+ , jsaddleMsgBufArray , jsaddleMsgBufArray32 , jsaddleMsgBufArrayInt32 ) ;
1719 }
1820
1921 public open ( flag : FileFlag ) : File {
@@ -31,7 +33,8 @@ export class JSaddleDeviceFile extends BaseFile implements File {
3133 private _Device : JSaddleDevice ,
3234 private _jsaddleListener : MessagePort ,
3335 private _jsaddleMsgBufArray : Uint8Array ,
34- private _jsaddleMsgBufArray32 : Uint32Array ) {
36+ private _jsaddleMsgBufArray32 : Uint32Array ,
37+ private _jsaddleMsgBufArrayInt32 : Int32Array ) {
3538 super ( ) ;
3639 }
3740 public getPos ( ) : number | undefined {
@@ -94,7 +97,7 @@ export class JSaddleDeviceFile extends BaseFile implements File {
9497 }
9598 public readSync ( buffer : Buffer , offset : number , length : number , position : number | null ) : number {
9699 var bytes_read = 0 ;
97- var isAlreadyLocked = Atomics . compareExchange ( this . _jsaddleMsgBufArray32 , 0 , 0 , 1 ) ;
100+ var isAlreadyLocked = Atomics . compareExchange ( this . _jsaddleMsgBufArrayInt32 , 0 , 0 , 1 ) ;
98101 if ( isAlreadyLocked === 0 ) {
99102 var bytes_available = this . _jsaddleMsgBufArray32 [ 1 ] ;
100103 if ( bytes_available > 0 ) {
@@ -118,7 +121,7 @@ export class JSaddleDeviceFile extends BaseFile implements File {
118121 }
119122 }
120123 // Release the lock
121- this . _jsaddleMsgBufArray32 [ 0 ] = 0 ;
124+ this . _jsaddleMsgBufArrayInt32 [ 0 ] = 0 ;
122125 }
123126 return bytes_read ;
124127 }
0 commit comments