equal
deleted
inserted
replaced
1975 } |
1975 } |
1976 |
1976 |
1977 OSXSemaphore::OSXSemaphore(uint value) { |
1977 OSXSemaphore::OSXSemaphore(uint value) { |
1978 kern_return_t ret = SEM_INIT(_semaphore, value); |
1978 kern_return_t ret = SEM_INIT(_semaphore, value); |
1979 |
1979 |
1980 guarantee(ret == KERN_SUCCESS, err_msg("Failed to create semaphore: %s", sem_init_strerror(ret))); |
1980 guarantee(ret == KERN_SUCCESS, "Failed to create semaphore: %s", sem_init_strerror(ret)); |
1981 } |
1981 } |
1982 |
1982 |
1983 OSXSemaphore::~OSXSemaphore() { |
1983 OSXSemaphore::~OSXSemaphore() { |
1984 SEM_DESTROY(_semaphore); |
1984 SEM_DESTROY(_semaphore); |
1985 } |
1985 } |
2211 const char* mesg) { |
2211 const char* mesg) { |
2212 assert(mesg != NULL, "mesg must be specified"); |
2212 assert(mesg != NULL, "mesg must be specified"); |
2213 if (!pd_commit_memory(addr, size, exec)) { |
2213 if (!pd_commit_memory(addr, size, exec)) { |
2214 // add extra info in product mode for vm_exit_out_of_memory(): |
2214 // add extra info in product mode for vm_exit_out_of_memory(): |
2215 PRODUCT_ONLY(warn_fail_commit_memory(addr, size, exec, errno);) |
2215 PRODUCT_ONLY(warn_fail_commit_memory(addr, size, exec, errno);) |
2216 vm_exit_out_of_memory(size, OOM_MMAP_ERROR, mesg); |
2216 vm_exit_out_of_memory(size, OOM_MMAP_ERROR, "%s", mesg); |
2217 } |
2217 } |
2218 } |
2218 } |
2219 |
2219 |
2220 void os::pd_commit_memory_or_exit(char* addr, size_t size, |
2220 void os::pd_commit_memory_or_exit(char* addr, size_t size, |
2221 size_t alignment_hint, bool exec, |
2221 size_t alignment_hint, bool exec, |
3098 // save the old handler in jvm |
3098 // save the old handler in jvm |
3099 save_preinstalled_handler(sig, oldAct); |
3099 save_preinstalled_handler(sig, oldAct); |
3100 // libjsig also interposes the sigaction() call below and saves the |
3100 // libjsig also interposes the sigaction() call below and saves the |
3101 // old sigaction on it own. |
3101 // old sigaction on it own. |
3102 } else { |
3102 } else { |
3103 fatal(err_msg("Encountered unexpected pre-existing sigaction handler " |
3103 fatal("Encountered unexpected pre-existing sigaction handler " |
3104 "%#lx for signal %d.", (long)oldhand, sig)); |
3104 "%#lx for signal %d.", (long)oldhand, sig); |
3105 } |
3105 } |
3106 } |
3106 } |
3107 |
3107 |
3108 struct sigaction sigAct; |
3108 struct sigaction sigAct; |
3109 sigfillset(&(sigAct.sa_mask)); |
3109 sigfillset(&(sigAct.sa_mask)); |
3457 |
3457 |
3458 ThreadCritical::initialize(); |
3458 ThreadCritical::initialize(); |
3459 |
3459 |
3460 Bsd::set_page_size(getpagesize()); |
3460 Bsd::set_page_size(getpagesize()); |
3461 if (Bsd::page_size() == -1) { |
3461 if (Bsd::page_size() == -1) { |
3462 fatal(err_msg("os_bsd.cpp: os::init: sysconf failed (%s)", |
3462 fatal("os_bsd.cpp: os::init: sysconf failed (%s)", strerror(errno)); |
3463 strerror(errno))); |
|
3464 } |
3463 } |
3465 init_page_sizes((size_t) Bsd::page_size()); |
3464 init_page_sizes((size_t) Bsd::page_size()); |
3466 |
3465 |
3467 Bsd::initialize_system_info(); |
3466 Bsd::initialize_system_info(); |
3468 |
3467 |