From 4ff6caa79a6ab2d3c5d32346bada084e9edbfedb Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sat, 18 Sep 2021 01:39:42 +0900 Subject: [PATCH] keep syslog ident matches to last opened syslog --- vm/src/stdlib/syslog.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/vm/src/stdlib/syslog.rs b/vm/src/stdlib/syslog.rs index f4d502d086..6c23d772dd 100644 --- a/vm/src/stdlib/syslog.rs +++ b/vm/src/stdlib/syslog.rs @@ -85,8 +85,11 @@ mod syslog { None => GlobalIdent::Implicit, }; - unsafe { libc::openlog(ident.as_ptr(), logoption, facility) }; - *global_ident().write() = Some(ident); + { + let mut locked_ident = global_ident().write(); + unsafe { libc::openlog(ident.as_ptr(), logoption, facility) }; + *locked_ident = Some(ident); + } Ok(()) } @@ -117,8 +120,9 @@ mod syslog { #[pyfunction] fn closelog() { if global_ident().read().is_some() { + let mut locked_ident = global_ident().write(); unsafe { libc::closelog() }; - *global_ident().write() = None; + *locked_ident = None; } }