@@ -436,24 +436,41 @@ mod sys {
436
436
use std:: io:: { Error , Result } ;
437
437
use std:: os:: unix:: io:: AsRawFd ;
438
438
439
+ #[ cfg( not( target_os = "solaris" ) ) ]
440
+ const LOCK_SH : i32 = libc:: LOCK_SH ;
441
+ #[ cfg( target_os = "solaris" ) ]
442
+ const LOCK_SH : i32 = 1 ;
443
+ #[ cfg( not( target_os = "solaris" ) ) ]
444
+ const LOCK_EX : i32 = libc:: LOCK_EX ;
445
+ #[ cfg( target_os = "solaris" ) ]
446
+ const LOCK_EX : i32 = 2 ;
447
+ #[ cfg( not( target_os = "solaris" ) ) ]
448
+ const LOCK_NB : i32 = libc:: LOCK_NB ;
449
+ #[ cfg( target_os = "solaris" ) ]
450
+ const LOCK_NB : i32 = 4 ;
451
+ #[ cfg( not( target_os = "solaris" ) ) ]
452
+ const LOCK_UN : i32 = libc:: LOCK_UN ;
453
+ #[ cfg( target_os = "solaris" ) ]
454
+ const LOCK_UN : i32 = 8 ;
455
+
439
456
pub ( super ) fn lock_shared ( file : & File ) -> Result < ( ) > {
440
- flock ( file, libc :: LOCK_SH )
457
+ flock ( file, LOCK_SH )
441
458
}
442
459
443
460
pub ( super ) fn lock_exclusive ( file : & File ) -> Result < ( ) > {
444
- flock ( file, libc :: LOCK_EX )
461
+ flock ( file, LOCK_EX )
445
462
}
446
463
447
464
pub ( super ) fn try_lock_shared ( file : & File ) -> Result < ( ) > {
448
- flock ( file, libc :: LOCK_SH | libc :: LOCK_NB )
465
+ flock ( file, LOCK_SH | LOCK_NB )
449
466
}
450
467
451
468
pub ( super ) fn try_lock_exclusive ( file : & File ) -> Result < ( ) > {
452
- flock ( file, libc :: LOCK_EX | libc :: LOCK_NB )
469
+ flock ( file, LOCK_EX | LOCK_NB )
453
470
}
454
471
455
472
pub ( super ) fn unlock ( file : & File ) -> Result < ( ) > {
456
- flock ( file, libc :: LOCK_UN )
473
+ flock ( file, LOCK_UN )
457
474
}
458
475
459
476
pub ( super ) fn error_contended ( err : & Error ) -> bool {
@@ -493,18 +510,18 @@ mod sys {
493
510
l_pid : 0 ,
494
511
l_pad : [ 0 , 0 , 0 , 0 ] ,
495
512
} ;
496
- flock. l_type = if flag & libc :: LOCK_UN != 0 {
513
+ flock. l_type = if flag & LOCK_UN != 0 {
497
514
libc:: F_UNLCK
498
- } else if flag & libc :: LOCK_EX != 0 {
515
+ } else if flag & LOCK_EX != 0 {
499
516
libc:: F_WRLCK
500
- } else if flag & libc :: LOCK_SH != 0 {
517
+ } else if flag & LOCK_SH != 0 {
501
518
libc:: F_RDLCK
502
519
} else {
503
520
panic ! ( "unexpected flock() operation" )
504
521
} ;
505
522
506
523
let mut cmd = libc:: F_SETLKW ;
507
- if ( flag & libc :: LOCK_NB ) != 0 {
524
+ if ( flag & LOCK_NB ) != 0 {
508
525
cmd = libc:: F_SETLK ;
509
526
}
510
527
0 commit comments