On Tue, Aug 21, 2007 at 01:57:40PM +0200, Dominik Vogt wrote: > With this minimal .fvwm2rc fvwm hangs in startup for many seconds. > > ----------- BEGIN .fvwm2rc ----------- > ModuleSynchronous Timeout 5 FvwmTheme > ------------ END .fvwm2rc ------------ > > I think something is broken in the module code. Since it waits > longer when more commands are added, fvwm may run into the module > timeout repeatedly (but maybe not).
The attached patch is responsible for the bug. It was committed between 2007-08-05 23:00:00 and 2007-08-05 23:30:00. Ciao Dominik ^_^ ^_^ -- Dominik Vogt, dominik.vogt (at) gmx.de
Index: ChangeLog
===================================================================
RCS file: /home/cvs/fvwm/fvwm/ChangeLog,v
retrieving revision 1.2963
retrieving revision 1.2964
diff -u -u -r1.2963 -r1.2964
--- ChangeLog 5 Aug 2007 20:49:10 -0000 1.2963
+++ ChangeLog 5 Aug 2007 21:17:28 -0000 1.2964
@@ -30,6 +30,12 @@
(module_list_len):
renamed as list handling functions
+ * fvwm/events.c (My_XNextEvent):
+ * fvwm/module_list.h:
+ * fvwm/module_list.c (module_alloc):
+ (do_execute_module):
+ removed useless is_cmdline_module stuff
+
2007-08-05 Dominik Vogt <dominik(dot)vogt(at)gmx(dot)de>
* configure.ac:
Index: fvwm/events.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/events.c,v
retrieving revision 1.544
retrieving revision 1.545
diff -u -u -r1.544 -r1.545
--- fvwm/events.c 5 Aug 2007 20:49:10 -0000 1.544
+++ fvwm/events.c 5 Aug 2007 21:17:28 -0000 1.545
@@ -4039,13 +4039,6 @@
if (fFvwmInStartup)
{
modstore = module_get_next(NULL);
- for (; modstore != NULL; modstore = module_get_next(modstore))
- {
- if (MOD_IS_CMDLINE(modstore->module) == 1)
- {
- break;
- }
- }
if (modstore == NULL)
{
/* last module */
Index: fvwm/module_list.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/module_list.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -u -r1.14 -r1.15
--- fvwm/module_list.c 5 Aug 2007 20:49:10 -0000 1.14
+++ fvwm/module_list.c 5 Aug 2007 21:17:28 -0000 1.15
@@ -129,7 +129,6 @@
fmodule *module;
module = (fmodule *)safemalloc(sizeof(fmodule));
- MOD_SET_CMDLINE(module, 0);
MOD_SET_REMOVED(module, 0);
MOD_READFD(module) = -1;
MOD_WRITEFD(module) = -1;
@@ -423,7 +422,6 @@
{
/* add to the list of command line modules */
DBUG("executeModule", "starting commandline module\n");
- MOD_SET_CMDLINE(module, 1);
}
/* make the PositiveWrite pipe non-blocking. Don't want to jam
Index: fvwm/module_list.h
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/module_list.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -u -r1.10 -r1.11
--- fvwm/module_list.h 5 Aug 2007 20:49:10 -0000 1.10
+++ fvwm/module_list.h 5 Aug 2007 21:17:28 -0000 1.11
@@ -24,7 +24,6 @@
{
struct
{
- unsigned is_cmdline_module : 1;
unsigned is_removed : 1;
} xflags;
int xreadPipe;
@@ -44,8 +43,6 @@
} fmodule_store;
-#define MOD_IS_CMDLINE(m) ((m)->xflags.is_cmdline_module)
-#define MOD_SET_CMDLINE(m,on) ((m)->xflags.is_cmdline_module = !!(on))
#define MOD_IS_REMOVED(m) ((m)->xflags.is_removed)
#define MOD_SET_REMOVED(m,on) ((m)->xflags.is_removed = !!(on))
#define MOD_READFD(m) ((m)->xreadPipe)
signature.asc
Description: Digital signature
