Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
sds
margo
Commits
9485e38e
Commit
9485e38e
authored
Dec 08, 2017
by
Matthieu Dorier
Browse files
integrating latest changes from master
parent
e791b15a
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/margo.c
View file @
9485e38e
...
...
@@ -71,6 +71,7 @@ struct margo_instance
/* internal to margo for this particular instance */
int
margo_init
;
int
abt_init
;
ABT_thread
hg_progress_tid
;
int
hg_progress_shutdown_flag
;
ABT_xstream
progress_xstream
;
...
...
@@ -134,14 +135,19 @@ margo_instance_id margo_init(const char *addr_str, int mode,
hg_class_t
*
hg_class
=
NULL
;
hg_context_t
*
hg_context
=
NULL
;
int
listen_flag
=
(
mode
==
MARGO_CLIENT_MODE
)
?
HG_FALSE
:
HG_TRUE
;
int
abt_init
=
0
;
int
i
;
int
ret
;
struct
margo_instance
*
mid
=
MARGO_INSTANCE_NULL
;
if
(
mode
!=
MARGO_CLIENT_MODE
&&
mode
!=
MARGO_SERVER_MODE
)
goto
err
;
ret
=
ABT_init
(
0
,
NULL
);
/* XXX: argc/argv not currently used by ABT ... */
if
(
ret
!=
0
)
goto
err
;
if
(
ABT_initialized
()
==
ABT_ERR_UNINITIALIZED
)
{
ret
=
ABT_init
(
0
,
NULL
);
/* XXX: argc/argv not currently used by ABT ... */
if
(
ret
!=
0
)
goto
err
;
abt_init
=
1
;
}
/* set caller (self) ES to idle without polling */
#ifdef HAVE_ABT_SNOOZER
...
...
@@ -209,6 +215,7 @@ margo_instance_id margo_init(const char *addr_str, int mode,
if
(
mid
==
MARGO_INSTANCE_NULL
)
goto
err
;
mid
->
margo_init
=
1
;
mid
->
abt_init
=
abt_init
;
mid
->
owns_progress_pool
=
use_progress_thread
;
mid
->
progress_xstream
=
progress_xstream
;
mid
->
num_handler_pool_threads
=
rpc_thread_count
<
0
?
0
:
rpc_thread_count
;
...
...
@@ -242,7 +249,8 @@ err:
HG_Context_destroy
(
hg_context
);
if
(
hg_class
)
HG_Finalize
(
hg_class
);
ABT_finalize
();
if
(
abt_init
)
ABT_finalize
();
return
MARGO_INSTANCE_NULL
;
}
...
...
@@ -325,7 +333,8 @@ static void margo_cleanup(margo_instance_id mid)
HG_Context_destroy
(
mid
->
hg_context
);
if
(
mid
->
hg_class
)
HG_Finalize
(
mid
->
hg_class
);
ABT_finalize
();
if
(
mid
->
abt_init
)
ABT_finalize
();
}
free
(
mid
);
...
...
@@ -780,22 +789,6 @@ hg_return_t margo_bulk_deserialize(
return
(
HG_Bulk_deserialize
(
mid
->
hg_class
,
handle
,
buf
,
buf_size
));
}
/* TODO: currently identical to a vanilla margo_cb -- consider reusing that */
/* Done, we are using margo_cb now */
#if 0
static hg_return_t margo_bulk_transfer_cb(const struct hg_cb_info *info)
{
hg_return_t hret = info->ret;
struct margo_cb_arg* arg = info->arg;
/* propagate return code out through eventual */
ABT_eventual_set(arg->eventual, &hret, sizeof(hret));
return(HG_SUCCESS);
}
#endif
hg_return_t
margo_bulk_transfer
(
margo_instance_id
mid
,
hg_bulk_op_t
op
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment