* syscalls.cc (gethostid): Set thread affinity so that results are predictable.

This commit is contained in:
Christopher Faylor 2003-07-06 20:08:42 +00:00
parent e2723b750a
commit b671715358
2 changed files with 19 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2003-07-06 Christopher Faylor <cgf@redhat.com>
* syscalls.cc (gethostid): Set thread affinity so that results are
predictable.
2003-07-05 Corinna Vinschen <corinna@vinschen.de> 2003-07-05 Corinna Vinschen <corinna@vinschen.de>
* mmap.cc (list::match): Add parameters to return valid address and * mmap.cc (list::match): Add parameters to return valid address and
@ -138,7 +143,7 @@
(cygheap_user::internal_token): New member. (cygheap_user::internal_token): New member.
(cygheap_user::impersonation_state): New member. (cygheap_user::impersonation_state): New member.
(cygheap_user::issetuid): Modify. (cygheap_user::issetuid): Modify.
(cygheap_user::token): New method. (cygheap_user::token): New method.
(cygheap_user::deimpersonate): New method. (cygheap_user::deimpersonate): New method.
(cygheap_user::reimpersonate): New method. (cygheap_user::reimpersonate): New method.
(cygheap_user::has_impersonation_tokens): New method. (cygheap_user::has_impersonation_tokens): New method.
@ -190,9 +195,9 @@
2003-06-18 Pierre Humblet <pierre.humblet@ieee.org> 2003-06-18 Pierre Humblet <pierre.humblet@ieee.org>
* autoload.cc (GetNetworkParams): Add. * autoload.cc (GetNetworkParams): Add.
* net.cc (getdomainname): Call GetNetworkParams and read the * net.cc (getdomainname): Call GetNetworkParams and read the
DhcpDomain registry value if warranted. DhcpDomain registry value if warranted.
2003-06-17 Christopher Faylor <cgf@redhat.com> 2003-06-17 Christopher Faylor <cgf@redhat.com>
@ -451,7 +456,7 @@
(fhandler_base::lseek): Call set_did_lseek() instead of (fhandler_base::lseek): Call set_did_lseek() instead of
set_check_win95_lseek_bug(). set_check_win95_lseek_bug().
(fhandler_base::fhandler_base): Initialize fs_flags to 0. (fhandler_base::fhandler_base): Initialize fs_flags to 0.
* fhandler_disk_file.cc (fhandler_disk_file::open): Don't create files * fhandler_disk_file.cc (fhandler_disk_file::open): Don't create files
as "sparse" unconditionally. Set fs_flags member. as "sparse" unconditionally. Set fs_flags member.
2003-05-25 Pierre Humblet <pierre.humblet@ieee.org> 2003-05-25 Pierre Humblet <pierre.humblet@ieee.org>
@ -529,7 +534,7 @@
* dcrt0.cc (dll_crt_0_1) Fix calls to MTinterface::Init and * dcrt0.cc (dll_crt_0_1) Fix calls to MTinterface::Init and
pthread::init_mainthread. pthread::init_mainthread.
Call pthread::init_mainthread only when not forked. Call pthread::init_mainthread only when not forked.
2003-05-15 Corinna Vinschen <corinna@vinschen.de> 2003-05-15 Corinna Vinschen <corinna@vinschen.de>
* fhandler_proc.cc (format_proc_meminfo): Make swap memory output * fhandler_proc.cc (format_proc_meminfo): Make swap memory output

View File

@ -2787,6 +2787,11 @@ long gethostid(void)
0x00290012}; 0x00290012};
bool has_cpuid = false; bool has_cpuid = false;
sigframe thisframe (mainthread);
DWORD opmask = SetThreadAffinityMask (GetCurrentThread (), 1);
if (!opmask)
debug_printf ("SetThreadAffinityMask to 1 failed, %E");
if (!can_set_flag (0x00040000)) if (!can_set_flag (0x00040000))
debug_printf ("386 processor - no cpuid"); debug_printf ("386 processor - no cpuid");
@ -2870,6 +2875,9 @@ long gethostid(void)
for (int i=0;i<13;i++) for (int i=0;i<13;i++)
hostid ^= ((data[i] << (i << 2)) | (data[i] >> (32 - (i << 2)))); hostid ^= ((data[i] << (i << 2)) | (data[i] >> (32 - (i << 2))));
if (opmask && !SetThreadAffinityMask (GetCurrentThread (), opmask))
debug_printf ("SetThreadAffinityMask to %p failed, %E", opmask);
debug_printf ("hostid: %08x", hostid); debug_printf ("hostid: %08x", hostid);
return hostid; return hostid;