Commit Graph

213 Commits

Author SHA1 Message Date
Alexandre Julliard 2520e387a1 server: Allow suspended threads to run system APCs. 2007-01-10 21:55:23 +01:00
Alexandre Julliard 5c8421d3e7 server: Add a generic apc_call structure to make it easier to extend, and more type-safe. 2007-01-04 13:40:09 +01:00
Alexandre Julliard 49b49c30fc server: Notify the server that an APC has completed in the next get_apc call. 2007-01-04 13:17:53 +01:00
Alexandre Julliard 2606ad538b server: Make thread_apc into a real object. 2007-01-04 12:36:33 +01:00
Alexandre Julliard 48b74b3237 server: Split get_thread_from_pid to allow lookups by tid or pid only. 2006-12-29 16:53:33 +01:00
Michael Stefaniuc 5cecceccb2 server: Remove redundant NULL check before free() (found by Smatch). 2006-10-10 12:56:16 +02:00
Eric Pouech 8cb932ea89 ntdll: Implemented AmILastThread information class for NtQueryInformationThread. 2006-10-03 20:20:13 +02:00
Mike McCormack 261691fa2f server: Use ntdll values where possible. 2006-08-23 12:01:10 +02:00
Alexandre Julliard 68e850e602 server: Send a SIGKILL to processes that don't terminate properly. 2006-08-14 20:19:42 +02:00
Alexandre Julliard 753c8706f5 server: Only call gettimeofday once per poll loop. 2006-08-10 16:42:09 +02:00
Thomas Kho 3538c0cdce server: Remove unused thread_apc member. 2006-08-03 18:20:20 +02:00
Alexandre Julliard c627601c3b server: Convert the server start time to the abs_time_t type. 2006-07-26 14:50:55 +02:00
Alexandre Julliard 3095a48d6f server: Convert thread creation/exit times to the abs_time_t type. 2006-07-26 14:49:55 +02:00
Ge van Geldorp 5d88b27d0d server: The "select" call passes handles, not ints. 2006-07-03 11:37:14 +02:00
Alexandre Julliard 86d4688171 server: Moved some common bits of get/set_thread_context to thread.c. 2006-06-23 13:16:14 +02:00
Mike McCormack 1ec3e9fe7d server: Fix a win64 warning. 2006-06-15 11:39:29 +02:00
Alexandre Julliard 5558652ea3 server: Don't report a fatal protocol error for things that we can recover from. 2006-06-08 10:26:02 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman b02e6b0926 server: Threads should start off without having an impersonation token. 2006-05-05 16:36:05 +02:00
Alexandre Julliard 17de829096 server: Use the standard suspend mechanism to simulate a breakpoint
in an active process, instead of sending a SIGTRAP.
2006-04-19 19:45:39 +02:00
Alexandre Julliard 820c5927c8 server: Removed the thread attached flag, since we always detach now. 2006-04-10 20:25:22 +02:00
Alexandre Julliard cb70931f67 server: Moved read/write_process_memory and get_selector_entry to ptrace.c. 2006-04-07 19:52:12 +02:00
Alexandre Julliard 2878d99216 ntdll: Add debug registers to the context of all exceptions.
Maintain a local cache of the debug registers to avoid server calls
where possible.
2006-01-13 13:58:14 +01:00
Alexandre Julliard 2654be08d5 ntdll: Handle NtSetContextThread on the client side (as far as
possible) when setting the context of the current thread.
2006-01-11 20:20:32 +01:00
Alexandre Julliard 46d1b3e8da server: Added access rights mapping to process and thread objects. 2005-12-12 15:03:07 +01:00
Alexandre Julliard 28beba31d6 server: Added infrastructure for access rights mapping. 2005-12-12 14:57:40 +01:00
Alexandre Julliard 24560e70bb server: Make alloc_handle use attributes instead of inherit flag. 2005-12-09 13:58:25 +01:00
Alexandre Julliard f2d7dd645e server: Use attributes instead of inherit flag in process and thread requests. 2005-12-09 12:13:11 +01:00
Ge van Geldorp 1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Vitaliy Margolen baffcb95d3 Add name_lookup function in object_ops. 2005-11-22 14:55:42 +00:00
Alexandre Julliard 73c72390f8 Fixed Get/SetThreadContext to work properly on suspended threads.
Added a test case.
2005-11-02 20:54:12 +00:00
Alexandre Julliard 3f85e26af2 Moved the platform-independent part of the get/set_thread_context
requests to a common file.
2005-11-02 14:12:13 +00:00
Alexandre Julliard ff7795ef4c Don't send an extra signal when waiting for a debug event, just do a
normal wait.  Return the debug event status directly as return value
of the server call.
2005-11-01 21:47:07 +00:00
Alexandre Julliard 867ae269d4 Remove an exiting thread from the process only after thread cleanup to
avoid accessing freed window classes.
2005-09-14 15:44:12 +00:00
Alexandre Julliard 1b2adad892 Don't try to detach from a thread that is exiting, to avoid triggering
a kernel race condition.
2005-08-22 10:13:28 +00:00
Mike McCormack e659f1e60c Fix some gcc 4.0 warnings. 2005-08-09 10:37:50 +00:00
Alexandre Julliard f895ad180d Fixed a couple of error codes. 2005-07-29 14:41:14 +00:00
Alexandre Julliard 9ad5628639 Moved the server start time to the init_thread request and got rid of
the init_process request (based on a patch by Felix Nawothnig).
2005-07-14 10:32:46 +00:00
Alexandre Julliard 11ad6a0ac4 Return the startup info size in the init_thread request, and allocate
the process parameters structure in ntdll instead of kernel.
2005-07-13 19:43:35 +00:00
Alexandre Julliard 4391be583e Get rid of the boot_done request. 2005-07-13 14:20:13 +00:00
Alexandre Julliard 0424f38169 Already initialize the process in the first init_thread request
instead of waiting for the init_process request.
2005-07-13 12:12:43 +00:00
Alexandre Julliard 92fec7b67a Keep track of the windows and hooks used by a thread to properly
refuse to change the thread desktop when it's in use.
2005-06-28 19:37:52 +00:00
Mike McCormack 390bc5f52f Don't include winbase.h when it's not necessary. 2005-06-21 09:46:15 +00:00
Robert Shearman 4bba21643c Add support for impersonating a token. 2005-06-20 13:18:38 +00:00
Robert Shearman 3795709344 Change code style of form "if( x )" to "if (x)" for consistency. 2005-06-10 19:54:46 +00:00
Alexandre Julliard b9b1ea9c9f Added a close_handle method to the object operations, and use it to
implement registry notifications and the strange behavior of
CloseHandle on winstation/desktop handles.
2005-06-09 15:39:52 +00:00
Alexandre Julliard 78a3e63377 The desktop of a new thread should be set from the process initial
desktop, not from the parent thread.
Fixed a couple of bugs in the desktop name handling.
2005-06-09 12:07:12 +00:00
Alexandre Julliard 1bf96e09a9 Beginnings of support for window stations and desktops. 2005-06-08 18:44:50 +00:00
Mike McCormack f92fff66a2 Implemented NtSignalAndWaitForSingleObject. 2005-04-24 17:35:52 +00:00
Robert Shearman d2ea92d14e - Clean up well-known privileges.
- Implement checking tokens for privileges in the server.
- Implement NtPrivilegeCheck.
2005-04-22 21:17:15 +00:00
Steven Edwards 5727918424 Added a check for poll.h. 2005-03-04 12:38:36 +00:00
Alexandre Julliard aa34768677 Convert the object wait queue to a standard list. 2005-03-01 11:49:58 +00:00
Alexandre Julliard 73209eb73e Convert the global thread list to a standard list. 2005-02-25 19:33:35 +00:00
Alexandre Julliard 20894e2ffb Convert the per-thread mutex list to a standard list. 2005-02-25 16:58:43 +00:00
Alexandre Julliard 81b6a1fbe5 Convert the APC queues to use standard lists. 2005-02-25 14:01:40 +00:00
Dmitry Timoshkov 6dba0a7718 Add support for winevent hooks. 2005-02-03 16:40:20 +00:00
Eric Pouech 4634447d6b - got rid of include/async.h
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll
2005-01-14 19:54:38 +00:00
Alexandre Julliard 3c68ab05ca Make init_thread request deal better with fd allocation errors. 2003-10-27 22:10:22 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Mike McCormack 36cd6f5dbb Added a security token object in wineserver. 2003-07-24 00:07:00 +00:00
Alexandre Julliard 4f196ead13 Implemented the ThreadBasicInformation case for
NtQueryInformationThread.
2003-07-09 02:57:57 +00:00
Alexandre Julliard d55e7f1e9b Store the hook table in the thread queue instead of the thread
structure, and make sure the queue is allocated when setting a hook.
2003-07-03 18:16:48 +00:00
Ulrich Czekalla b2df5f9f19 - use global atoms for the format ids
- add timeout when calling XCheckTypedWindowEvent
- fix broken IsClipboardFormatAvailable; it tried to do a trick with
  EnumClipboardFormats by making incorrect assumptions
- in X11DRV_IsClipboardFormatAvailable do a quick exit if no one owns
  the selection
- add 1 second *minimum* time lapse between XSelectionOwner calls
- sync clipboard ownership between different wine processes
- prevents apps from getting into wierd state where they thought they
  didn't own the selection but they did and as a result queried
  themselves for available selection data
2003-06-23 23:02:02 +00:00
Alexandre Julliard 088bcf9ca5 Implemented NtQueueApcThread, and changed the server APC interface to
always take 3 parameters.
Implemented a number of other ntdll thread functions, and use them
from the kernel ones.
2003-04-04 22:26:34 +00:00
Alexandre Julliard 462172a3d6 Added abs_time_t structure to the server protocol, and added a dump
routine for it that displays the relative timeout to make timeout
values easier to interpret.
2003-04-02 22:48:59 +00:00
Alexandre Julliard a8497bd037 Make a distinction between the thread Unix pid and the process wide
pid for platforms that use both.
2003-03-22 21:00:09 +00:00
Alexandre Julliard 580da246f5 Added an inode object to keep track of all file descriptors open for a
given file.
Plugged a couple of potential file descriptor leaks.
2003-03-12 22:38:14 +00:00
Alexandre Julliard d04ccb8ebe Use SIGUSR1 instead of SIGSTOP to suspend threads. 2003-03-04 22:18:43 +00:00
Peter Hunnisett a3c5ad4e77 Suspended threads should not acquire synchronization objects. 2003-02-28 21:50:47 +00:00
Alexandre Julliard 02a53c176e Added send_thread_signal() function and properly handle errors caused
by the thread having already died when we send it a signal.
Use -1 instead of 0 as invalid Unix pid value.
2003-02-25 04:17:22 +00:00
Alexandre Julliard 77c8b1dc2b Pass the pid of the new process in the new_process request, don't
depend on the parent pid to find the startup info.
2003-02-24 20:51:50 +00:00
Alexandre Julliard e66207ebfc Moved all references to file descriptors out of the generic object
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.
2003-02-19 00:33:32 +00:00
Alexandre Julliard cf27a7fa3b Changed fd operations to take a struct fd instead of a struct object.
Removed get_file_info function from object operations.
Added get_device_id request to avoid abusing get_file_info.
2003-02-14 20:27:09 +00:00
Alexandre Julliard 91befe1d64 Made process and thread ids small integers instead of pointers. 2003-02-01 01:38:40 +00:00
Alexandre Julliard 863637b158 Started moving functions that deal with Unix file descriptors to a
separate fd object. This will be needed for file locking.
2003-01-30 00:26:44 +00:00
Ryan Cumming 24f4eced42 Partially implement GetThreadTimes. 2002-11-25 01:33:38 +00:00
Alexandre Julliard 0286135de3 Rewrote hook support to store the hook chain in the server.
Split off 16-bit hook functions and re-implemented them on top of the
32-bit ones; system-wide 16-bit hooks are no longer supported at this
point.
2002-10-29 00:41:42 +00:00
Alexandre Julliard 54f228733a Added process_id_t and thread_it_t types to the server interface
instead of using void*, and removed a number of type casts.
2002-10-03 19:54:57 +00:00
Alexandre Julliard 31022d66ca Signal and release the idle event when the process main thread exits. 2002-08-16 23:30:41 +00:00
Alexandre Julliard ff73250630 Unlock the master socket if the boot thread terminates early.
Avoid crash if thread died during timeout wakeup.
2002-06-22 01:20:36 +00:00
Alexandre Julliard 5188574984 Renamed handle_t to obj_handle_t to avoid conflict with rpcdce.h. 2002-05-30 20:12:58 +00:00
Alexandre Julliard 5769d1de00 Better support for configure detection of missing types, added check
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +00:00
Martin Wilck 2b47fb3cee - separate cleanly between async scheduling and file IO related issues.
- make the API compatible with other types of async requests (e.g. for
  sockets).
- remove exports of async IO related functions for DLL separation.
2002-04-05 22:53:57 +00:00
François Gouget f6662576e3 Don't suspend a terminated thread. 2002-04-02 02:53:45 +00:00
Chris Morgan 417296c4af Implement OpenThread() winapi call.
Implement a few pthreads functions.
2002-04-02 00:49:05 +00:00
Alexandre Julliard 15979fda75 Fixed handling of timer callback routines when the thread owning the
callback terminates.
2002-03-23 18:50:04 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Martin Wilck b1c45b9424 Fixed a bug that caused APCs to be "forgotten". 2002-01-09 19:09:57 +00:00
Mike McCormack 6f011c0847 - move async activation into the server
- implement async queues
2001-12-20 00:07:05 +00:00
Eric Pouech 3940d8a294 Let the console renderer be defined as a thread. 2001-12-04 20:17:43 +00:00
Alexandre Julliard 9caa71eef4 Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Alexandre Julliard c4be541dfa Avoid ftruncate to work around broken UMSDOS file system. 2001-11-07 20:25:12 +00:00
Alexandre Julliard 1a66d226eb Added global management of user handles in the server.
Very preliminary support for shared window handles.
2001-08-28 18:44:52 +00:00
Andreas Mohr d66130ac9d Don't crash if send_thread_wakeup() fails. 2001-08-07 19:31:43 +00:00
Alexandre Julliard 10109e6083 Removed unused functions suspend/remove_all_threads. 2001-07-12 22:35:20 +00:00
Alexandre Julliard 51ab43bd13 Moved the major part of message queue and window timer handling into
the server.
Implemented MsgWaitForMultipleObjectsEx.
2001-05-18 22:51:56 +00:00
Alexandre Julliard e5dedb1906 Added support for nested server waits (to allow waiting in signal
handlers).
2001-03-08 01:16:41 +00:00
Alexandre Julliard 8859d77279 Create the server pipes on the client side and transfer them to the
server on thread creation.
Use a single per-process socket instead of one per thread for
transferring file handles between client and server.
2001-03-01 22:13:49 +00:00
Alexandre Julliard f52424055f New mechanism to transfer file descriptors from client to server. 2001-02-28 21:45:23 +00:00
Alexandre Julliard 67a749999a New set of macros for server calls; makes requests without variable
part somewhat faster.
2001-02-27 02:09:16 +00:00