Author: tkreuzer
Date: Fri Feb 13 20:19:51 2015
New Revision: 66250
URL: http://svn.reactos.org/svn/reactos?rev=66250&view=rev
Log:
[CMAKE]
Add support for "module groups". These are meta targets that automatically include all targets using set_module_type() that are included between start_module_group(name) and end_module_group().
Modified:
trunk/reactos/cmake/CMakeMacros.cmake
Modified: trunk/reactos/cmake/CMakeMacros.cmake
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/cmake/CMakeMacros.cmake?re…
==============================================================================
--- trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] (original)
+++ trunk/reactos/cmake/CMakeMacros.cmake [iso-8859-1] Fri Feb 13 20:19:51 2015
@@ -550,9 +550,14 @@
message(STATUS "set_module_type : unparsed arguments ${__module_UNPARSED_ARGUMENTS}, module : ${MODULE}")
endif()
+ # Add the module to the module group list, if it is defined
+ if(DEFINED CURRENT_MODULE_GROUP)
+ set_property(GLOBAL APPEND PROPERTY ${CURRENT_MODULE_GROUP}_MODULE_LIST "${MODULE}")
+ endif()
+
# Set subsystem. Also take this as an occasion
# to error out if someone gave a non existing type
- if((${TYPE} STREQUAL nativecui) OR (${TYPE} STREQUAL nativedll)
+ if((${TYPE} STREQUAL nativecui) OR (${TYPE} STREQUAL nativedll)
OR (${TYPE} STREQUAL kernelmodedriver) OR (${TYPE} STREQUAL wdmdriver) OR (${TYPE} STREQUAL kerneldll))
set(__subsystem native)
elseif(${TYPE} STREQUAL win32cui)
@@ -662,6 +667,21 @@
# do compiler specific stuff
set_module_type_toolchain(${MODULE} ${TYPE})
+endfunction()
+
+function(start_module_group __name)
+ if(DEFINED CURRENT_MODULE_GROUP)
+ message(FATAL_ERROR "CURRENT_MODULE_GROUP is already set ('${CURRENT_MODULE_GROUP}')")
+ endif()
+ set(CURRENT_MODULE_GROUP rostests PARENT_SCOPE)
+endfunction()
+
+function(end_module_group)
+ get_property(__modulelist GLOBAL PROPERTY ${CURRENT_MODULE_GROUP}_MODULE_LIST)
+ add_custom_target(${CURRENT_MODULE_GROUP})
+ foreach(__module ${__modulelist})
+ add_dependencies(${CURRENT_MODULE_GROUP} ${__module})
+ endforeach()
endfunction()
function(preprocess_file __in __out)
Author: hbelusca
Date: Fri Feb 13 16:16:28 2015
New Revision: 66248
URL: http://svn.reactos.org/svn/reactos?rev=66248&view=rev
Log:
[BASESRV]: Only SHUTDOWN_NORETRY can be set via Get/SetProcessShutdownParameters APIs.
Modified:
trunk/reactos/subsystems/win/basesrv/proc.c
Modified: trunk/reactos/subsystems/win/basesrv/proc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win/basesrv/pro…
==============================================================================
--- trunk/reactos/subsystems/win/basesrv/proc.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win/basesrv/proc.c [iso-8859-1] Fri Feb 13 16:16:28 2015
@@ -288,7 +288,8 @@
ASSERT(CsrThread);
ShutdownParametersRequest->ShutdownLevel = CsrThread->Process->ShutdownLevel;
- ShutdownParametersRequest->ShutdownFlags = CsrThread->Process->ShutdownFlags;
+ /* Only SHUTDOWN_NORETRY flag is valid for this API. The other private flags are for CSRSRV/WINSRV only. */
+ ShutdownParametersRequest->ShutdownFlags = CsrThread->Process->ShutdownFlags & SHUTDOWN_NORETRY;
return STATUS_SUCCESS;
}
@@ -299,7 +300,15 @@
PCSR_THREAD CsrThread = CsrGetClientThread();
ASSERT(CsrThread);
+ /* Only SHUTDOWN_NORETRY flag is valid for this API. The other private flags are for CSRSRV/WINSRV only. */
+ if (ShutdownParametersRequest->ShutdownFlags & ~SHUTDOWN_NORETRY)
+ {
+ /* If there were other flags specified, fail the call */
+ return STATUS_INVALID_PARAMETER;
+ }
+
CsrThread->Process->ShutdownLevel = ShutdownParametersRequest->ShutdownLevel;
+ /* Notice that all the possible other private flags are reinitialized here */
CsrThread->Process->ShutdownFlags = ShutdownParametersRequest->ShutdownFlags;
return STATUS_SUCCESS;
Author: jimtabor
Date: Fri Feb 13 13:45:11 2015
New Revision: 66245
URL: http://svn.reactos.org/svn/reactos?rev=66245&view=rev
Log:
[NtUser]
- Fix wine msg:test_SendMessageTimeout. Do not allow the message to pass on after a timeout.
Modified:
trunk/reactos/win32ss/user/ntuser/msgqueue.c
Modified: trunk/reactos/win32ss/user/ntuser/msgqueue.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/msgque…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/msgqueue.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/msgqueue.c [iso-8859-1] Fri Feb 13 13:45:11 2015
@@ -1172,7 +1172,7 @@
UserEnterCo();
- if (WaitStatus == STATUS_TIMEOUT || WaitStatus == STATUS_USER_APC)
+ if (WaitStatus == STATUS_TIMEOUT)
{
/* Look up if the message has not yet dispatched, if so
make sure it can't pass a result and it must not set the completion event anymore */
@@ -1186,6 +1186,9 @@
and the message is still hasn't been dispatched */
Message->CompletionEvent = NULL;
Message->Result = NULL;
+ RemoveEntryList(&Message->ListEntry);
+ ClearMsgBitsMask(ptirec, Message->QS_Flags);
+ ExFreePoolWithTag(Message, TAG_USRMSG);
break;
}
Entry = Entry->Flink;
@@ -1254,7 +1257,7 @@
UserEnterCo();
- if (WaitStatus == STATUS_TIMEOUT || WaitStatus == STATUS_USER_APC)
+ if (WaitStatus == STATUS_TIMEOUT)
{
/* Look up if the message has not yet been dispatched, if so
make sure it can't pass a result and it must not set the completion event anymore */
@@ -1268,6 +1271,9 @@
and the message is still hasn't been dispatched */
Message->CompletionEvent = NULL;
Message->Result = NULL;
+ RemoveEntryList(&Message->ListEntry);
+ ClearMsgBitsMask(ptirec, Message->QS_Flags);
+ ExFreePoolWithTag(Message, TAG_USRMSG);
break;
}
Entry = Entry->Flink;
@@ -1317,6 +1323,9 @@
Entry = Entry->Flink;
}
}
+
+ if (WaitStatus == STATUS_USER_APC) break;
+
while (co_MsqDispatchOneSentMessage(pti))
;
}