comparison src/systime.h @ 611:38db05db9cb5

[xemacs-hg @ 2001-06-08 12:21:09 by ben] ------ gc-in-window-procedure fixes ------ alloc.c: Create "post-gc actions", to avoid those dreaded "GC during window procedure" problems. event-msw.c: Abort, clean and simple, when GC in window procedure. We want to flush these puppies out. glyphs-msw.c: Use a post-gc action when destroying subwindows. lisp.h: Declare register_post_gc_action(). scrollbar-msw.c: Use a post-gc action when unshowing scrollbar windows, if in gc. redisplay.c: Add comment about the utter evilness of what's going down here. ------ cygwin setitimer fixes ------ Makefile.in.in: Compile profile.c only when HAVE_SETITIMER. nt.c: Style fixes. nt.c: Move setitimer() emulation to win32.c, because Cygwin needs it too. profile.c: Make sure we don't compile if no setitimer(). Use qxe_setitimer() instead of just plain setitimer(). signal.c: Define qxe_setitimer() as an encapsulation around setitimer() -- call setitimer() directly unless Cygwin or MS Win, in which case we use our simulated version in win32.c. systime.h: Prototype mswindows_setitimer() and qxe_setitimer(). Long comment about "qxe" and the policy regarding encapsulation. win32.c: Move setitimer() emulation here, so Cygwin can use it. Rename a couple of functions and variables to be longer and more descriptive. In setitimer_helper_proc(), send the signal using either mswindows_raise() or (on Cygwin) kill(). If for some reason we are still getting lockups, we'll change the kill() to directly invoke the signal handlers. ------ windows shell fixes ------ callproc.c, ntproc.c: Comments about how these two files must die. callproc.c: On MS Windows, init shell-file-name from SHELL, then COMSPEC, not just COMSPEC. (more correct and closer to FSF.) Don't force a value for SHELL into the environment. (Comments added to explain why not.) nt.c: Don't shove a fabricated SHELL into the environment. See above. ------ misc fixes ------ glyphs-shared.c: Style correction. xemacs-faq.texi: Merge in the rest of Hrvoje's Windows FAQ. Redo section 7 to update current reality and add condensed versions of new changes for 21.1 and 21.4. (Not quite done for 21.4.) Lots more Windows updates. process.el: Need to quote a null argument, too. From Dan Holmsand. startup.el: startup.el: Call MS Windows init function. win32-native.el: Correct comments at top. Correctly handle passing arguments to Cygwin programs and to bash. Fix quoting of zero-length arguments (from Dan Holmsand). Set shell-command-switch based on shell-file-name, which in turn comes from env var SHELL.
author ben
date Fri, 08 Jun 2001 12:21:27 +0000
parents 4f6ba8f1fb3d
children af57a77cbc92
comparison
equal deleted inserted replaced
610:45ba69404a1f 611:38db05db9cb5
239 #endif 239 #endif
240 240
241 void get_process_times (double *user_time, double *system_time, 241 void get_process_times (double *user_time, double *system_time,
242 double *real_time); 242 double *real_time);
243 243
244 #if defined(WIN32_NATIVE) 244 #ifdef WIN32_NATIVE
245 245
246 /* setitimer emulation for Win32 (see nt.c) */ 246 /* setitimer emulation for Win32 (see win32.c) */
247 247
248 struct itimerval 248 struct itimerval
249 { 249 {
250 struct timeval it_value; 250 struct timeval it_value;
251 struct timeval it_interval; 251 struct timeval it_interval;
252 }; 252 };
253 253
254 int setitimer (int kind, const struct itimerval* itnew,
255 struct itimerval* itold);
256
257 #define ITIMER_REAL 1 254 #define ITIMER_REAL 1
258 #define ITIMER_PROF 2 255 #define ITIMER_PROF 2
259 256
260 #endif /* WIN32_NATIVE */ 257 #endif /* WIN32_NATIVE */
261 258
259 #if defined (WIN32_NATIVE) || defined (CYGWIN)
260
261 int mswindows_setitimer (int kind, const struct itimerval *itnew,
262 struct itimerval *itold);
263
264 #endif /* defined (WIN32_NATIVE) || defined (CYGWIN) */
265
266 /* #### Move this comment elsewhere when we figure out the place.
267
268 "qxe" is a unique prefix used to identify encapsulations of standard
269 library functions. We used to play pre-processing games but in
270 general this leads to nothing but trouble because someone first
271 encountering the code will have no idea that what appears to be a
272 call to a library function has actually been redefined to be a call
273 somewhere else. This is doubly true when the redefinition occurs
274 in out-of-the way s+m files and only on certainly systems.
275
276 By making the encapsulation explicit we might be making the code
277 that uses is slightly less pretty, but this is more than compensated
278 for by the huge increase in clarity.
279
280 "Standard library function" can refer to any function in any
281 standard library. If we are explicitly changing the semantics
282 (e.g. Mule-encapsulating), we should use an extended version of
283 the prefix, e.g. perhaps "qxe_xlat_" for functions that Mule-
284 encapsulate, or "qxe_retry_" for functions that automatically
285 retry a system call interrupted by EINTR. In general, if there
286 is no prefix extension, it means the function is trying to
287 provide (more or less) the same semantics as the standard library
288 function; but be aware that the reimplementation may be incomplete
289 or differ in important respects. This is especially the case
290 when attempts are made to implement Unix functions on MS Windows.
291 */
292
293 int qxe_setitimer (int kind, const struct itimerval *itnew,
294 struct itimerval *itold);
295
262 #endif /* INCLUDED_systime_h_ */ 296 #endif /* INCLUDED_systime_h_ */