This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
5 seconds delay in libICE if file attributes doesn't match
- From: "Ralf Habacker" <Ralf dot Habacker at freenet dot de>
- To: "Cygwin-Xfree" <cygwin-xfree at sources dot redhat dot com>
- Date: Thu, 16 May 2002 13:09:56 +0200
- Subject: 5 seconds delay in libICE if file attributes doesn't match
> On Thursday 16 May 2002 09:11, Ralf Habacker wrote:
> > Hi Lubos,
> >
> > you have written in the kde-core-devel mailing list:
> > > Second, this may change may help on systems which doesn't have
> > > /tmp/.ICE-unix set to root:root 1777, where ksmserver is idle for 5
> > > seconds, so with this change, those 5 seconds are used to something else.
> >
> > I'm porting kde 2.2.2 to cygwin/xfree and currently looking for places to
> > save loading time, so this fact seems to be interesting for me. Because the
> > cygwin security system does not work in all this way like unix (it's an
> > emulation), this could be a significant point. I have looked into the
> > (kde2) ksmserver sources to find the place you told about, but haven't
> > found it. Do you have a hint for this ?
>
> The place is actually in libICE. You can see the change here
> http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdelibs/dcop/KDE-ICE/Xtransut
> il.c.diff?r1=1.3&r2=1.4
>
> There are actually two libICE libraries used in KDE, first one is this
> modified version for DCOP called KDE-ICE, the second one is standard libICE
> shipped with XFree86, which is used by libSM, which is used by ksmserver, and
> this libICE still waits those 5 seconds when there are improper permissions.
>
Are there any reasons why this delay should be in libICE ?
Is not so here is a patch
Index: Xtransutil.c
===================================================================
RCS file: /cvs/xc/lib/xtrans/Xtransutil.c,v
retrieving revision 3.21
diff -u -3 -p -B -r3.21 Xtransutil.c
--- Xtransutil.c 2001/12/14 19:57:07 3.21
+++ Xtransutil.c 2002/05/16 11:08:20
@@ -503,12 +503,16 @@ trans_mkdir(char *path, int mode)
if (updateOwner && !updatedOwner) {
PRMSG(1, "mkdir: Owner of %s should be set to root\n",
path, 0, 0);
+#ifndef __CYGWIN__
sleep(5);
+#endif
}
if (updateMode && !updatedMode) {
PRMSG(1, "mkdir: Mode of %s should be set to %04o\n",
path, mode, 0);
+#ifndef __CYGWIN__
sleep(5);
+#endif
}
return 0;
}
Regards
Ralf