package w3m
tag 352585 patch
thanks
Package: w3m
Version: 0.5.1-4
Followup-For: Bug #352585
The patch removes a deadlock from wrap_GC_warn_proc. This function maybe
called while GC has a lock on its internals, so calls to GC from within
wrap_GC_warn_proc can (will?) lead to a deadlock.
The messages will now be displayed where the cursor currently is but it
could be regarded as a bug in w3m if any such message appears.
In this case the message is:
"Repeated allocation of very large block (appr. size %ld):
May lead to memory leak and poor performance."
I do not know how to avoid it though.
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Regards,
--
Karsten Schölzel | Email: [EMAIL PROTECTED]
Väderleden 9 4:98 | Jabber: [EMAIL PROTECTED]
97633 Luleå | VoIP: sip:[EMAIL PROTECTED]
Sweden | sip:[EMAIL PROTECTED]
| Tel: +4918015855857712
| Mobile: +46706725974
Many functions can NOT be used in wrap_GC_warn_proc because of possible
lock in GC. Warnings from GC should only appear in development and
otherwise regarded as bugs.
---
commit 488d2a9493ff726f5c23ec8cf8ac7148469dc23b
tree 2b9d97bad64a75fc22d11628254509e71f3b8ef4
parent 2c59d593b7d9a36d9c69e44d10741c2bde9252b3
author Karsten Schoelzel <[EMAIL PROTECTED]> Mon, 01 May 2006 12:46:18 +0200
committer Karsten Schoelzel <[EMAIL PROTECTED]> Mon, 01 May 2006 12:46:18 +0200
main.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/main.c b/main.c
index ab0732a..0d709ef 100644
--- a/main.c
+++ b/main.c
@@ -293,10 +293,9 @@ wrap_GC_warn_proc(char *msg, GC_word arg
for (; n > 0; --n, ++i) {
i %= sizeof(msg_ring) / sizeof(msg_ring[0]);
- disp_message_nsec(Sprintf
- (msg_ring[i].msg,
- (unsigned long)msg_ring[i].arg)->ptr, FALSE,
- 1, TRUE, FALSE);
+
+ printf(msg_ring[i].msg, (unsigned long)msg_ring[i].arg);
+ sleep_till_anykey(1, 1);
}
lock = 0;