11use jack_sys as j;
22use std:: fmt:: Debug ;
3- use std:: panic:: catch_unwind;
43use std:: sync:: Arc ;
54use std:: { ffi, fmt, ptr} ;
65
@@ -51,7 +50,7 @@ impl Client {
5150 /// Although the client may be successful in opening, there still may be some errors minor
5251 /// errors when attempting to opening. To access these, check the returned `ClientStatus`.
5352 pub fn new ( client_name : & str , options : ClientOptions ) -> Result < ( Self , ClientStatus ) , Error > {
54- let _m = CREATE_OR_DESTROY_CLIENT_MUTEX . lock ( ) . unwrap ( ) ;
53+ let _m = CREATE_OR_DESTROY_CLIENT_MUTEX . lock ( ) . ok ( ) ;
5554
5655 // All of the jack_sys functions below assume the client library is loaded and will panic if
5756 // it is not
@@ -60,10 +59,7 @@ impl Client {
6059 return Err ( Error :: LibraryError ( err. to_string ( ) ) ) ;
6160 }
6261
63- unsafe {
64- jack_sys:: jack_set_error_function ( Some ( silent_handler) ) ;
65- jack_sys:: jack_set_info_function ( Some ( silent_handler) ) ;
66- }
62+ crate :: logging:: maybe_init_logging ( ) ;
6763 sleep_on_test ( ) ;
6864 let mut status_bits = 0 ;
6965 let client = unsafe {
@@ -75,10 +71,6 @@ impl Client {
7571 if client. is_null ( ) {
7672 Err ( Error :: ClientError ( status) )
7773 } else {
78- unsafe {
79- jack_sys:: jack_set_error_function ( Some ( error_handler) ) ;
80- jack_sys:: jack_set_info_function ( Some ( info_handler) ) ;
81- }
8274 sleep_on_test ( ) ;
8375 Ok ( ( Client ( client, Arc :: default ( ) , None ) , status) )
8476 }
@@ -552,7 +544,7 @@ impl Client {
552544 source_port : & Port < A > ,
553545 destination_port : & Port < B > ,
554546 ) -> Result < ( ) , Error > {
555- let _m = CREATE_OR_DESTROY_CLIENT_MUTEX . lock ( ) . unwrap ( ) ;
547+ let _m = CREATE_OR_DESTROY_CLIENT_MUTEX . lock ( ) . ok ( ) ;
556548 self . connect_ports_by_name ( & source_port. name ( ) ?, & destination_port. name ( ) ?)
557549 }
558550
@@ -670,7 +662,7 @@ impl Client {
670662/// Close the client.
671663impl Drop for Client {
672664 fn drop ( & mut self ) {
673- let _m = CREATE_OR_DESTROY_CLIENT_MUTEX . lock ( ) . unwrap ( ) ;
665+ let _m = CREATE_OR_DESTROY_CLIENT_MUTEX . lock ( ) . ok ( ) ;
674666 debug_assert ! ( !self . raw( ) . is_null( ) ) ; // Rep invariant
675667 // Close the client
676668 sleep_on_test ( ) ;
@@ -790,27 +782,3 @@ pub struct CycleTimes {
790782 pub next_usecs : Time ,
791783 pub period_usecs : libc:: c_float ,
792784}
793-
794- unsafe extern "C" fn error_handler ( msg : * const libc:: c_char ) {
795- let res = catch_unwind ( || match std:: ffi:: CStr :: from_ptr ( msg) . to_str ( ) {
796- Ok ( msg) => log:: error!( "{}" , msg) ,
797- Err ( err) => log:: error!( "failed to log to JACK error: {:?}" , err) ,
798- } ) ;
799- if let Err ( err) = res {
800- eprintln ! ( "{err:?}" ) ;
801- std:: mem:: forget ( err) ;
802- }
803- }
804-
805- unsafe extern "C" fn info_handler ( msg : * const libc:: c_char ) {
806- let res = catch_unwind ( || match std:: ffi:: CStr :: from_ptr ( msg) . to_str ( ) {
807- Ok ( msg) => log:: info!( "{}" , msg) ,
808- Err ( err) => log:: error!( "failed to log to JACK info: {:?}" , err) ,
809- } ) ;
810- if let Err ( err) = res {
811- eprintln ! ( "{err:?}" ) ;
812- std:: mem:: forget ( err) ;
813- }
814- }
815-
816- unsafe extern "C" fn silent_handler ( _msg : * const libc:: c_char ) { }
0 commit comments