Install PMIx v3.0.0 release
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
родитель
018ca4e2c4
Коммит
17c4cf0db8
@ -26,7 +26,7 @@ Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved.
|
|||||||
Copyright (c) 2006-2010 The University of Houston. All rights reserved.
|
Copyright (c) 2006-2010 The University of Houston. All rights reserved.
|
||||||
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
|
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
|
||||||
Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
|
Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
|
||||||
Copyright (c) 2007-2010 IBM Corporation. All rights reserved.
|
Copyright (c) 2007-2018 IBM Corporation. All rights reserved.
|
||||||
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
|
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
|
||||||
Centre, Federal Republic of Germany
|
Centre, Federal Republic of Germany
|
||||||
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
|
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
|
||||||
@ -36,7 +36,7 @@ Copyright (c) 2008-2009 Institut National de Recherche en
|
|||||||
Informatique. All rights reserved.
|
Informatique. All rights reserved.
|
||||||
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
|
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
Copyright (c) 2007-2009 Mellanox Technologies. All rights reserved.
|
Copyright (c) 2007-2018 Mellanox Technologies. All rights reserved.
|
||||||
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
|
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
|
||||||
Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved.
|
Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved.
|
||||||
Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
|
||||||
@ -45,7 +45,7 @@ Copyright (c) 2010 ARM ltd. All rights reserved.
|
|||||||
Copyright (c) 2010-2011 Alex Brick <bricka@ccs.neu.edu>. All rights reserved.
|
Copyright (c) 2010-2011 Alex Brick <bricka@ccs.neu.edu>. All rights reserved.
|
||||||
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
|
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
|
||||||
reserved.
|
reserved.
|
||||||
Copyright (c) 2013-2014 Intel, Inc. All rights reserved.
|
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||||
Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved.
|
Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved.
|
||||||
|
|
||||||
$COPYRIGHT$
|
$COPYRIGHT$
|
||||||
|
@ -60,8 +60,21 @@ current release as well as the "stable" bug fix release branch.
|
|||||||
channels, including local/remote syslog and email. Added
|
channels, including local/remote syslog and email. Added
|
||||||
attributes to query available channels and to tag and
|
attributes to query available channels and to tag and
|
||||||
format output.
|
format output.
|
||||||
|
- Fix several memory and file descriptor leaks
|
||||||
|
|
||||||
|
|
||||||
|
2.1.2 -- TBD
|
||||||
|
----------------------
|
||||||
|
- Added PMIX_VERSION_RELEASE string to pmix_version.h
|
||||||
|
- Added PMIX_SPAWNED and PMIX_PARENT_ID keys to all procs
|
||||||
|
started via PMIx_Spawn
|
||||||
|
- Fixed faulty compares in PMI/PMI2 tests
|
||||||
|
- Fixed bug in direct modex for data on remote node
|
||||||
|
- Correctly transfer all cached job info to the client's
|
||||||
|
shared memory region upon first connection
|
||||||
|
- Fix potential deadlock in PMIx_server_init in an error case
|
||||||
|
- Fix uninitialized variable
|
||||||
|
- Fix several memory and file descriptor leaks
|
||||||
|
|
||||||
|
|
||||||
2.1.1 -- 23 Feb 2018
|
2.1.1 -- 23 Feb 2018
|
||||||
|
@ -15,7 +15,7 @@ Copyright (c) 2007 Myricom, Inc. All rights reserved.
|
|||||||
Copyright (c) 2008 IBM Corporation. All rights reserved.
|
Copyright (c) 2008 IBM Corporation. All rights reserved.
|
||||||
Copyright (c) 2010 Oak Ridge National Labs. All rights reserved.
|
Copyright (c) 2010 Oak Ridge National Labs. All rights reserved.
|
||||||
Copyright (c) 2011 University of Houston. All rights reserved.
|
Copyright (c) 2011 University of Houston. All rights reserved.
|
||||||
Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||||
$COPYRIGHT$
|
$COPYRIGHT$
|
||||||
|
|
||||||
Additional copyrights may follow
|
Additional copyrights may follow
|
||||||
@ -25,13 +25,14 @@ $HEADER$
|
|||||||
===========================================================================
|
===========================================================================
|
||||||
|
|
||||||
When submitting questions and problems, be sure to include as much
|
When submitting questions and problems, be sure to include as much
|
||||||
extra information as possible. This web page details all the
|
extra information as possible. The issues template on the
|
||||||
information that we request in order to provide assistance:
|
GitHub repo provides directions:
|
||||||
|
|
||||||
http://pmix.github.io/pmix/community/help/
|
http://github.com/pmix/pmix/issues
|
||||||
|
|
||||||
The best way to report bugs, send comments, or ask questions is to
|
The best way to report bugs, send comments, or ask questions is to
|
||||||
sign up on the PMIx mailing list, which is hosted by GoogleGroups:
|
open an issue on the repo. Alternatively, you are welcome to sign
|
||||||
|
up for the developer/user mailing list:
|
||||||
|
|
||||||
pmix@googlegroups.com
|
pmix@googlegroups.com
|
||||||
|
|
||||||
@ -48,7 +49,7 @@ Thanks for your time.
|
|||||||
|
|
||||||
More information is available in the PMIx FAQ:
|
More information is available in the PMIx FAQ:
|
||||||
|
|
||||||
http://pmix.github.io/pmix/faq/
|
https://pmix.org/support
|
||||||
|
|
||||||
We are in early days, so please be patient - info will grow as questions
|
We are in early days, so please be patient - info will grow as questions
|
||||||
are addressed.
|
are addressed.
|
||||||
@ -63,7 +64,7 @@ General notes
|
|||||||
|
|
||||||
- The majority of PMIx's documentation is here in this file, the
|
- The majority of PMIx's documentation is here in this file, the
|
||||||
included man pages, and on the web site FAQ
|
included man pages, and on the web site FAQ
|
||||||
(http://pmix.github.io/pmix/faq). This will eventually be
|
(https://pmix.org/support). This will eventually be
|
||||||
supplemented with cohesive installation and user documentation files.
|
supplemented with cohesive installation and user documentation files.
|
||||||
|
|
||||||
- Systems that have been tested are:
|
- Systems that have been tested are:
|
||||||
@ -312,7 +313,7 @@ Common Questions
|
|||||||
Many common questions about building and using PMIx are answered
|
Many common questions about building and using PMIx are answered
|
||||||
on the FAQ:
|
on the FAQ:
|
||||||
|
|
||||||
http://pmix.github.io/pmix/faq/
|
https://pmix.org/support
|
||||||
|
|
||||||
===========================================================================
|
===========================================================================
|
||||||
|
|
||||||
@ -323,10 +324,10 @@ Found a bug? Got a question? Want to make a suggestion? Want to
|
|||||||
contribute to PMIx? Please let us know!
|
contribute to PMIx? Please let us know!
|
||||||
|
|
||||||
When submitting questions and problems, be sure to include as much
|
When submitting questions and problems, be sure to include as much
|
||||||
extra information as possible. This web page details all the
|
extra information as possible. Again, the issues template is your
|
||||||
information that we request in order to provide assistance:
|
friend in this regard!
|
||||||
|
|
||||||
http://pmix.github.io/pmix/community/help/
|
https://github.com/pmix/pmix/issues
|
||||||
|
|
||||||
Questions and comments should generally be sent to the PMIx mailing
|
Questions and comments should generally be sent to the PMIx mailing
|
||||||
list (pmix@googlegroups.com). Because of spam, only
|
list (pmix@googlegroups.com). Because of spam, only
|
||||||
@ -338,4 +339,4 @@ user's list:
|
|||||||
|
|
||||||
https://groups.google.com/d/forum/pmix
|
https://groups.google.com/d/forum/pmix
|
||||||
|
|
||||||
Make today an PMIx day!
|
Make today a PMIx day!
|
||||||
|
@ -30,7 +30,7 @@ greek=
|
|||||||
# command, or with the date (if "git describe" fails) in the form of
|
# command, or with the date (if "git describe" fails) in the form of
|
||||||
# "date<date>".
|
# "date<date>".
|
||||||
|
|
||||||
repo_rev=git7b5106a
|
repo_rev=gitffba520
|
||||||
|
|
||||||
# If tarball_version is not empty, it is used as the version string in
|
# If tarball_version is not empty, it is used as the version string in
|
||||||
# the tarball filename, regardless of all other versions listed in
|
# the tarball filename, regardless of all other versions listed in
|
||||||
@ -44,7 +44,7 @@ tarball_version=
|
|||||||
|
|
||||||
# The date when this release was created
|
# The date when this release was created
|
||||||
|
|
||||||
date="Jun 19, 2018"
|
date="Jul 01, 2018"
|
||||||
|
|
||||||
# The shared library version of each of PMIx's public libraries.
|
# The shared library version of each of PMIx's public libraries.
|
||||||
# These versions are maintained in accordance with the "Library
|
# These versions are maintained in accordance with the "Library
|
||||||
|
@ -2885,6 +2885,8 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
|
|||||||
ns_map_t *ns_map;
|
ns_map_t *ns_map;
|
||||||
session_t *session_tbl = NULL;
|
session_t *session_tbl = NULL;
|
||||||
ns_track_elem_t *trk = NULL;
|
ns_track_elem_t *trk = NULL;
|
||||||
|
int dstor_track_idx;
|
||||||
|
size_t session_tbl_idx;
|
||||||
|
|
||||||
PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output,
|
PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output,
|
||||||
"%s:%d:%s delete nspace `%s`", __FILE__, __LINE__, __func__, nspace));
|
"%s:%d:%s delete nspace `%s`", __FILE__, __LINE__, __func__, nspace));
|
||||||
@ -2893,7 +2895,8 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
|
|||||||
rc = PMIX_ERR_NOT_AVAILABLE;
|
rc = PMIX_ERR_NOT_AVAILABLE;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
dstor_track_idx = ns_map_data->track_idx;
|
||||||
|
session_tbl_idx = ns_map_data->tbl_idx;
|
||||||
size = pmix_value_array_get_size(_ns_map_array);
|
size = pmix_value_array_get_size(_ns_map_array);
|
||||||
ns_map = PMIX_VALUE_ARRAY_GET_BASE(_ns_map_array, ns_map_t);
|
ns_map = PMIX_VALUE_ARRAY_GET_BASE(_ns_map_array, ns_map_t);
|
||||||
|
|
||||||
@ -2905,19 +2908,6 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
in_use++;
|
in_use++;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(ns_map_data->track_idx >= 0) {
|
|
||||||
trk = pmix_value_array_get_item(_ns_track_array, ns_map_data->track_idx);
|
|
||||||
if((ns_map_data->track_idx + 1) > (int)pmix_value_array_get_size(_ns_track_array)) {
|
|
||||||
rc = PMIX_ERR_VALUE_OUT_OF_BOUNDS;
|
|
||||||
PMIX_ERROR_LOG(rc);
|
|
||||||
goto exit;
|
|
||||||
}
|
|
||||||
if (true == trk->in_use) {
|
|
||||||
PMIX_DESTRUCT(trk);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2925,10 +2915,22 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
|
|||||||
* session record can only be deleted once all references are gone */
|
* session record can only be deleted once all references are gone */
|
||||||
if (!in_use) {
|
if (!in_use) {
|
||||||
session_tbl = PMIX_VALUE_ARRAY_GET_BASE(_session_array, session_t);
|
session_tbl = PMIX_VALUE_ARRAY_GET_BASE(_session_array, session_t);
|
||||||
|
|
||||||
PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output,
|
PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output,
|
||||||
"%s:%d:%s delete session for jobuid: %d", __FILE__, __LINE__, __func__, session_tbl[ns_map_data->tbl_idx].jobuid));
|
"%s:%d:%s delete session for jobuid: %d",
|
||||||
_esh_session_release(&session_tbl[ns_map_data->tbl_idx]);
|
__FILE__, __LINE__, __func__, session_tbl[session_tbl_idx].jobuid));
|
||||||
|
size = pmix_value_array_get_size(_ns_track_array);
|
||||||
|
if (size && (dstor_track_idx >= 0)) {
|
||||||
|
if((dstor_track_idx + 1) > size) {
|
||||||
|
rc = PMIX_ERR_VALUE_OUT_OF_BOUNDS;
|
||||||
|
PMIX_ERROR_LOG(rc);
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
trk = pmix_value_array_get_item(_ns_track_array, dstor_track_idx);
|
||||||
|
if (true == trk->in_use) {
|
||||||
|
PMIX_DESTRUCT(trk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_esh_session_release(&session_tbl[session_tbl_idx]);
|
||||||
}
|
}
|
||||||
exit:
|
exit:
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -1821,10 +1821,10 @@ static void clct_complete(pmix_status_t status,
|
|||||||
static void clct(int sd, short args, void *cbdata)
|
static void clct(int sd, short args, void *cbdata)
|
||||||
{
|
{
|
||||||
pmix_inventory_rollup_t *cd = (pmix_inventory_rollup_t*)cbdata;
|
pmix_inventory_rollup_t *cd = (pmix_inventory_rollup_t*)cbdata;
|
||||||
|
pmix_status_t rc;
|
||||||
|
|
||||||
#if PMIX_HAVE_HWLOC
|
#if PMIX_HAVE_HWLOC
|
||||||
/* if we don't know our topology, we better get it now */
|
/* if we don't know our topology, we better get it now */
|
||||||
pmix_status_t rc;
|
|
||||||
if (NULL == pmix_hwloc_topology) {
|
if (NULL == pmix_hwloc_topology) {
|
||||||
if (PMIX_SUCCESS != (rc = pmix_hwloc_get_topology(NULL, 0))) {
|
if (PMIX_SUCCESS != (rc = pmix_hwloc_get_topology(NULL, 0))) {
|
||||||
PMIX_ERROR_LOG(rc);
|
PMIX_ERROR_LOG(rc);
|
||||||
|
@ -27,91 +27,91 @@ noinst_PROGRAMS = simptest simpclient simppub simpdyn simpft simpdmodex \
|
|||||||
test_pmix simptool simpdie simplegacy simptimeout \
|
test_pmix simptool simpdie simplegacy simptimeout \
|
||||||
gwtest gwclient stability quietclient
|
gwtest gwclient stability quietclient
|
||||||
|
|
||||||
simptest_SOURCES = \
|
simptest_SOURCES = $(headers) \
|
||||||
simptest.c
|
simptest.c
|
||||||
simptest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simptest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simptest_LDADD = \
|
simptest_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simpclient_SOURCES = \
|
simpclient_SOURCES = $(headers) \
|
||||||
simpclient.c
|
simpclient.c
|
||||||
simpclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simpclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simpclient_LDADD = \
|
simpclient_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simppub_SOURCES = \
|
simppub_SOURCES = $(headers) \
|
||||||
simppub.c
|
simppub.c
|
||||||
simppub_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simppub_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simppub_LDADD = \
|
simppub_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simpdmodex_SOURCES = \
|
simpdmodex_SOURCES = $(headers) \
|
||||||
simpdmodex.c
|
simpdmodex.c
|
||||||
simpdmodex_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simpdmodex_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simpdmodex_LDADD = \
|
simpdmodex_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simpft_SOURCES = \
|
simpft_SOURCES = $(headers) \
|
||||||
simpft.c
|
simpft.c
|
||||||
simpft_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simpft_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simpft_LDADD = \
|
simpft_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simpdyn_SOURCES = \
|
simpdyn_SOURCES = $(headers) \
|
||||||
simpdyn.c
|
simpdyn.c
|
||||||
simpdyn_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simpdyn_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simpdyn_LDADD = \
|
simpdyn_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
test_pmix_SOURCES = \
|
test_pmix_SOURCES = $(headers) \
|
||||||
test_pmix.c
|
test_pmix.c
|
||||||
test_pmix_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
test_pmix_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
test_pmix_LDADD = \
|
test_pmix_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simptool_SOURCES = \
|
simptool_SOURCES = $(headers) \
|
||||||
simptool.c
|
simptool.c
|
||||||
simptool_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simptool_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simptool_LDADD = \
|
simptool_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simpdie_SOURCES = \
|
simpdie_SOURCES = $(headers) \
|
||||||
simpdie.c
|
simpdie.c
|
||||||
simpdie_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simpdie_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simpdie_LDADD = \
|
simpdie_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simplegacy_SOURCES = \
|
simplegacy_SOURCES = $(headers) \
|
||||||
simplegacy.c
|
simplegacy.c
|
||||||
simplegacy_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simplegacy_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simplegacy_LDADD = \
|
simplegacy_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
simptimeout_SOURCES = \
|
simptimeout_SOURCES = $(headers) \
|
||||||
simptimeout.c
|
simptimeout.c
|
||||||
simptimeout_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
simptimeout_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
simptimeout_LDADD = \
|
simptimeout_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
gwtest_SOURCES = \
|
gwtest_SOURCES = $(headers) \
|
||||||
gwtest.c
|
gwtest.c
|
||||||
gwtest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
gwtest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
gwtest_LDADD = \
|
gwtest_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
gwclient_SOURCES = \
|
gwclient_SOURCES = $(headers) \
|
||||||
gwclient.c
|
gwclient.c
|
||||||
gwclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
gwclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
gwclient_LDADD = \
|
gwclient_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
stability_SOURCES = \
|
stability_SOURCES = $(headers) \
|
||||||
stability.c
|
stability.c
|
||||||
stability_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
stability_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
stability_LDADD = \
|
stability_LDADD = \
|
||||||
$(top_builddir)/src/libpmix.la
|
$(top_builddir)/src/libpmix.la
|
||||||
|
|
||||||
quietclient_SOURCES = \
|
quietclient_SOURCES = $(headers) \
|
||||||
quietclient.c
|
quietclient.c
|
||||||
quietclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
quietclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
|
||||||
quietclient_LDADD = \
|
quietclient_LDADD = \
|
||||||
|
53
opal/mca/pmix/pmix3x/pmix/test/simple/simptest.h
Обычный файл
53
opal/mca/pmix/pmix3x/pmix/test/simple/simptest.h
Обычный файл
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018 Intel, Inc. All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
pthread_mutex_t mutex;
|
||||||
|
pthread_cond_t cond;
|
||||||
|
volatile bool active;
|
||||||
|
pmix_status_t status;
|
||||||
|
} mylock_t;
|
||||||
|
|
||||||
|
#define DEBUG_CONSTRUCT_LOCK(l) \
|
||||||
|
do { \
|
||||||
|
pthread_mutex_init(&(l)->mutex, NULL); \
|
||||||
|
pthread_cond_init(&(l)->cond, NULL); \
|
||||||
|
(l)->active = true; \
|
||||||
|
(l)->status = PMIX_SUCCESS; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define DEBUG_DESTRUCT_LOCK(l) \
|
||||||
|
do { \
|
||||||
|
pthread_mutex_destroy(&(l)->mutex); \
|
||||||
|
pthread_cond_destroy(&(l)->cond); \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define DEBUG_WAIT_THREAD(lck) \
|
||||||
|
do { \
|
||||||
|
pthread_mutex_lock(&(lck)->mutex); \
|
||||||
|
while ((lck)->active) { \
|
||||||
|
pthread_cond_wait(&(lck)->cond, &(lck)->mutex); \
|
||||||
|
} \
|
||||||
|
pthread_mutex_unlock(&(lck)->mutex); \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define DEBUG_WAKEUP_THREAD(lck) \
|
||||||
|
do { \
|
||||||
|
pthread_mutex_lock(&(lck)->mutex); \
|
||||||
|
(lck)->active = false; \
|
||||||
|
pthread_cond_broadcast(&(lck)->cond); \
|
||||||
|
pthread_mutex_unlock(&(lck)->mutex); \
|
||||||
|
} while(0)
|
Загрузка…
x
Ссылка в новой задаче
Block a user