testfrmw:disable thread cancelability while output is running
PATCH 1/1 testfrmw:disable thread cancelability while output is running
Function output can be canceled by pthread_cancel(), which, maybe, leads to a deadlock as it calls pthread_mutex_lock(). That's catched in case "pthread_join/4-1.c".
So,disable thread cancelability until output finishes.
---.../conformance/interfaces/testfrmw/testfrmw.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c b/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c index 034faa9..fb54ee9 100644
---a/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c
+++b/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c @@ -28,6 +28,7 @@
#include <time.h>
#include <sys/types.h>
+#include <pthread.h>
/* We use a mutex to avoid conflicts in traces */ static pthread_mutex_t m_trace = PTHREAD_MUTEX_INITIALIZER; @@ -43,7 +44,9 @@ void output(char *string, ...) char *ts = "[??:??:??]";
struct tm *now;time_t nw;
+ int oldstate;
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE,&oldstate); pthread_mutex_lock(&m_trace);
nw = time(NULL);
now = localtime(&nw);
@@ -56,6 +59,7 @@ void output(char *string, ...) vprintf(string, ap);va_end(ap);pthread_mutex_unlock(&m_trace);
+ pthread_setcancelstate(oldstate,NULL);
}
void output_fini(void)
--
1.7.1
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Quoted 5 lines · lidan
Function output can be canceled by
pthread_cancel(), which, maybe, leads to a deadlock as it callspthread_mutex_lock(). That's catched in case "pthread_join/4-1.c".So,disable thread cancelability until output finishes.
The concept seems OK, but you should follow the coding style and patch format.
Thanks,
Wanlong Gao
Quoted 45 lines
Signed-off-by LIDAN<[email protected]>---
.../conformance/interfaces/testfrmw/testfrmw.c| 4 ++++1 files changed, 4 insertions(+), 0 deletions(-)diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.cb/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.cindex 034faa9..fb54ee9 100644
---a/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c
+++b/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c(quoted diff) +4
-1@@ -28,6 +28,7 @@ #include <time.h> #include <sys/types.h> +#include <pthread.h> /* We use a mutex to avoid conflicts in traces */ static pthread_mutex_t m_trace = PTHREAD_MUTEX_INITIALIZER;@@ -43,7 +44,9 @@ void output(char *string, ...) char *ts = "[??:??:??]"; struct tm *now; time_t nw; + int oldstate; + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE,&oldstate); pthread_mutex_lock(&m_trace); nw = time(NULL); now = localtime(&nw);@@ -56,6 +59,7 @@ void output(char *string, ...) vprintf(string, ap); va_end(ap); pthread_mutex_unlock(&m_trace); + pthread_setcancelstate(oldstate,NULL); } void output_fini(void) --1.7.1
Quoted 9 lines
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
如果用git-sendemail发patch的话可以配置git,更方便。
#cat ~/.gitconfig
1 [user]
2 email = [email protected] 3 name = Wanlong Gao 4 [sendemail] 5 from = Wanlong Gao <[email protected]> 6 smtpuser = [email protected] 7 smtppass = XXXXXXXXXXX 8 smtpserver = smtp.fnst.cn.fujitsu.com 9 smtpencryption = plain 10 [color] 11 diff = true 12 [format] 13 headers = "From: Wanlong Gao <[email protected]>\n" 14 numbered = auto 15 signoff = true
Thanks,
Wanlong Gao
Quoted 50 lines
Function output can be canceled by
pthread_cancel(), which, maybe, leads to a deadlock as it callspthread_mutex_lock(). That's catched in case "pthread_join/4-1.c".So,disable thread cancelability until output finishes.
Signed-off-by LIDAN<[email protected]>---
.../conformance/interfaces/testfrmw/testfrmw.c| 4 ++++1 files changed, 4 insertions(+), 0 deletions(-)diff --git
a/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.cb/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.cindex 034faa9..fb54ee9 100644
---a/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c
+++b/testcases/open_posix_testsuite/conformance/interfaces/testfrmw/testfrmw.c(quoted diff) +4
-1@@ -28,6 +28,7 @@ #include <time.h> #include <sys/types.h> +#include <pthread.h> /* We use a mutex to avoid conflicts in traces */ static pthread_mutex_t m_trace = PTHREAD_MUTEX_INITIALIZER;@@ -43,7 +44,9 @@ void output(char *string, ...) char *ts = "[??:??:??]"; struct tm *now; time_t nw; + int oldstate; + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE,&oldstate); pthread_mutex_lock(&m_trace); nw = time(NULL); now = localtime(&nw);@@ -56,6 +59,7 @@ void output(char *string, ...) vprintf(string, ap); va_end(ap); pthread_mutex_unlock(&m_trace); + pthread_setcancelstate(oldstate,NULL); } void output_fini(void) --1.7.1
Quoted 9 lines
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list