1 /*
2 * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
364 ThreadBlockInVM tbivm(thread);
365
366 thread->set_suspend_equivalent();
367 // cleared by handle_special_suspend_equivalent_condition() or
368 // java_suspend_self() via check_and_wait_while_suspended()
369
370 AttachOperation* op = Win32AttachListener::dequeue();
371
372 // were we externally suspended while we were waiting?
373 thread->check_and_wait_while_suspended();
374
375 return op;
376 }
377
378 void AttachListener::vm_start() {
379 // nothing to do
380 }
381
382 int AttachListener::pd_init() {
383 return Win32AttachListener::init();
384 }
385
386 bool AttachListener::init_at_startup() {
387 return true;
388 }
389
390 // no trigger mechanism on Windows to start Attach Listener lazily
391 bool AttachListener::is_init_trigger() {
392 return false;
393 }
394
395 void AttachListener::abort() {
396 // nothing to do
397 }
398
399 void AttachListener::pd_data_dump() {
400 os::signal_notify(SIGBREAK);
401 }
402
403 AttachOperationFunctionInfo* AttachListener::pd_find_operation(const char* n) {
|
1 /*
2 * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
364 ThreadBlockInVM tbivm(thread);
365
366 thread->set_suspend_equivalent();
367 // cleared by handle_special_suspend_equivalent_condition() or
368 // java_suspend_self() via check_and_wait_while_suspended()
369
370 AttachOperation* op = Win32AttachListener::dequeue();
371
372 // were we externally suspended while we were waiting?
373 thread->check_and_wait_while_suspended();
374
375 return op;
376 }
377
378 void AttachListener::vm_start() {
379 // nothing to do
380 }
381
382 int AttachListener::pd_init() {
383 return Win32AttachListener::init();
384 }
385
386 // This function is used for Un*x OSes only.
387 // We need not to implement it for Windows.
388 bool AttachListener::check_socket_file() {
389 return false;
390 }
391
392 bool AttachListener::init_at_startup() {
393 return true;
394 }
395
396 // no trigger mechanism on Windows to start Attach Listener lazily
397 bool AttachListener::is_init_trigger() {
398 return false;
399 }
400
401 void AttachListener::abort() {
402 // nothing to do
403 }
404
405 void AttachListener::pd_data_dump() {
406 os::signal_notify(SIGBREAK);
407 }
408
409 AttachOperationFunctionInfo* AttachListener::pd_find_operation(const char* n) {
|