mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
node: fix vecotrize feature (closes #274)
This commit is contained in:
parent
c3889beb38
commit
f892e5e29f
2 changed files with 6 additions and 8 deletions
10
lib/node.cpp
10
lib/node.cpp
|
@ -427,7 +427,8 @@ int node_destroy(struct vnode *n)
|
|||
|
||||
int node_read(struct vnode *n, struct sample *smps[], unsigned cnt, unsigned *release)
|
||||
{
|
||||
int toread, readd, vect, nread = 0;
|
||||
int toread, readd, nread = 0;
|
||||
unsigned vect;
|
||||
|
||||
assert(node_type(n)->read);
|
||||
|
||||
|
@ -441,7 +442,7 @@ int node_read(struct vnode *n, struct sample *smps[], unsigned cnt, unsigned *re
|
|||
vect = cnt;
|
||||
|
||||
while (cnt - nread > 0) {
|
||||
toread = MIN(cnt - nread, node_type(n)->vectorize);
|
||||
toread = MIN(cnt - nread, vect);
|
||||
readd = node_type(n)->read(n, &smps[nread], toread, release);
|
||||
if (readd < 0)
|
||||
return readd;
|
||||
|
@ -471,7 +472,8 @@ int node_read(struct vnode *n, struct sample *smps[], unsigned cnt, unsigned *re
|
|||
|
||||
int node_write(struct vnode *n, struct sample *smps[], unsigned cnt, unsigned *release)
|
||||
{
|
||||
int tosend, sent, vect, nsent = 0;
|
||||
int tosend, sent, nsent = 0;
|
||||
unsigned vect;
|
||||
|
||||
assert(node_type(n)->write);
|
||||
|
||||
|
@ -492,7 +494,7 @@ int node_write(struct vnode *n, struct sample *smps[], unsigned cnt, unsigned *r
|
|||
vect = cnt;
|
||||
|
||||
while (cnt - nsent > 0) {
|
||||
tosend = MIN(cnt - nsent, node_type(n)->vectorize);
|
||||
tosend = MIN(cnt - nsent, vect);
|
||||
sent = node_type(n)->write(n, &smps[nsent], tosend, release);
|
||||
if (sent < 0)
|
||||
return sent;
|
||||
|
|
|
@ -174,10 +174,6 @@ int node_direction_check(struct vnode_direction *nd, struct vnode *n)
|
|||
if (nd->vectorize <= 0)
|
||||
error("Invalid setting 'vectorize' with value %d for node %s. Must be natural number!", nd->vectorize, node_name(n));
|
||||
|
||||
if (node_type(n)->vectorize && node_type(n)->vectorize < nd->vectorize)
|
||||
error("Invalid value for setting 'vectorize'. Node type requires a number smaller than %d!",
|
||||
node_type(n)->vectorize);
|
||||
|
||||
nd->state = State::CHECKED;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue