Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
codes
codes
Commits
f8e08380
Commit
f8e08380
authored
Jan 16, 2015
by
Jonathan Jenkins
Browse files
fix multiple lsm msg ordering in single event
uses the same approach as was employed in model-net (MN_START_SEQ/END_SEQ)
parent
2b89b25f
Changes
2
Hide whitespace changes
Inline
Side-by-side
codes/local-storage-model.h
View file @
f8e08380
...
...
@@ -11,6 +11,21 @@
#define LSM_NAME "lsm"
/* HACK: problems arise when some LP sends multiple messages as part of an
* event and expects FCFS ordering. One could simply set a higher delay in
* delay, but that is hacky as well (and relies on knowing bounds on internal
* codes_local_latency bounds. Hence, expose explicit start-sequence and
* stop-sequence markers */
extern
int
in_sequence
;
extern
tw_stime
lsm_msg_offset
;
#define LSM_START_SEQ() do {\
in_sequence = 1; \
lsm_msg_offset = 0.0; \
} while (0)
#define LSM_END_SEQ() do {\
in_sequence = 0;\
} while (0)
/*
* lsm_event_t
* - events supported by the local storage model
...
...
src/util/local-storage-model.c
View file @
f8e08380
...
...
@@ -17,6 +17,8 @@
#define CATEGORY_NAME_MAX 16
#define CATEGORY_MAX 12
int
in_sequence
=
0
;
tw_stime
mn_msg_offset
=
0
.
0
;
/*
* wrapped_event_t
...
...
@@ -294,6 +296,7 @@ tw_event* lsm_event_new(const char* category,
tw_event
*
e
;
lsm_message_t
*
m
;
tw_lpid
lsm_gid
;
tw_stime
delta
;
assert
(
strlen
(
category
)
<
CATEGORY_NAME_MAX
-
1
);
assert
(
strlen
(
category
)
>
0
);
...
...
@@ -303,7 +306,13 @@ tw_event* lsm_event_new(const char* category,
*/
lsm_gid
=
lsm_find_local_device
(
sender
);
e
=
codes_event_new
(
lsm_gid
,
codes_local_latency
(
sender
)
+
delay
,
sender
);
delta
=
codes_local_latency
(
sender
)
+
delay
;
if
(
in_sequence
)
{
tw_stime
tmp
=
lsm_msg_offset
;
lsm_msg_offset
+=
delta
;
delta
+=
tmp
;
}
e
=
codes_event_new
(
lsm_gid
,
delta
,
sender
);
m
=
tw_event_data
(
e
);
m
->
magic
=
lsm_magic
;
m
->
event
=
io_type
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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