Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
67e687a4
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
67e687a4
编写于
4月 02, 2013
作者:
N
neliasso
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7034299: Faulty winsock initialization code
Reviewed-by: dholmes, sla, ctornqvi
上级
b9b4fe51
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
26 deletion
+14
-26
src/os/windows/vm/os_windows.cpp
src/os/windows/vm/os_windows.cpp
+14
-26
未找到文件。
src/os/windows/vm/os_windows.cpp
浏览文件 @
67e687a4
...
...
@@ -3768,6 +3768,8 @@ extern "C" {
}
}
static
jint
initSock
();
// this is called _after_ the global arguments have been parsed
jint
os
::
init_2
(
void
)
{
// Allocate a single page and mark it as readable for safepoint polling
...
...
@@ -3898,6 +3900,10 @@ jint os::init_2(void) {
if
(
!
success
)
UseNUMAInterleaving
=
false
;
}
if
(
initSock
()
!=
JNI_OK
)
{
return
JNI_ERR
;
}
return
JNI_OK
;
}
...
...
@@ -4894,42 +4900,24 @@ LONG WINAPI os::win32::serialize_fault_filter(struct _EXCEPTION_POINTERS* e) {
// We don't build a headless jre for Windows
bool
os
::
is_headless_jre
()
{
return
false
;
}
typedef
CRITICAL_SECTION
mutex_t
;
#define mutexInit(m) InitializeCriticalSection(m)
#define mutexDestroy(m) DeleteCriticalSection(m)
#define mutexLock(m) EnterCriticalSection(m)
#define mutexUnlock(m) LeaveCriticalSection(m)
static
bool
sock_initialized
=
FALSE
;
static
mutex_t
sockFnTableMutex
;
static
void
initSock
()
{
static
jint
initSock
()
{
WSADATA
wsadata
;
if
(
!
os
::
WinSock2Dll
::
WinSock2Available
())
{
jio_fprintf
(
stderr
,
"Could not load Winsock
2
(error: %d)
\n
"
,
jio_fprintf
(
stderr
,
"Could not load Winsock (error: %d)
\n
"
,
::
GetLastError
());
return
;
return
JNI_ERR
;
}
if
(
sock_initialized
==
TRUE
)
return
;
::
mutexInit
(
&
sockFnTableMutex
);
::
mutexLock
(
&
sockFnTableMutex
);
if
(
os
::
WinSock2Dll
::
WSAStartup
(
MAKEWORD
(
1
,
1
),
&
wsadata
)
!=
0
)
{
jio_fprintf
(
stderr
,
"Could not initialize Winsock
\n
"
)
;
if
(
os
::
WinSock2Dll
::
WSAStartup
(
MAKEWORD
(
2
,
2
),
&
wsadata
)
!=
0
)
{
jio_fprintf
(
stderr
,
"Could not initialize Winsock (error: %d)
\n
"
,
::
GetLastError
());
return
JNI_ERR
;
}
sock_initialized
=
TRUE
;
::
mutexUnlock
(
&
sockFnTableMutex
);
return
JNI_OK
;
}
struct
hostent
*
os
::
get_host_by_name
(
char
*
name
)
{
if
(
!
sock_initialized
)
{
initSock
();
}
if
(
!
os
::
WinSock2Dll
::
WinSock2Available
())
{
return
NULL
;
}
return
(
struct
hostent
*
)
os
::
WinSock2Dll
::
gethostbyname
(
name
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录