Skip to content

Commit

Permalink
Finished writing the module info add and remove functions.
Browse files Browse the repository at this point in the history
git-svn-id: https://subversion.cs.uiuc.edu/svn/bang/eoh2009@33 69d76c3e-0761-0410-948c-9895a8bb34fc
  • Loading branch information
nbysani2 committed Jan 24, 2009
1 parent fd7831b commit 31ec68f
Showing 1 changed file with 32 additions and 1 deletion.
33 changes: 32 additions & 1 deletion src/base/bang-module.c
Expand Up @@ -263,13 +263,44 @@ void* BANG_get_symbol(BANG_module *module, char *symbol) {
}

static int BANG_module_info_peer_add(BANG_module_info *info, uuid_t new_peer) {
int i;
BANG_write_lock(info->lck);
for (i = 0; i < info->peers_info->peer_number; ++i) {
if (info->peers_info->validity[i] == 0) {
uuid_copy(info->peers_info->uuids[i],new_peer);
info->peers_info->validity[i] = 1;
BANG_write_unlock(info->lck);

return i;

}
}
BANG_write_unlock(info->lck);

return -1;
}

static int BANG_module_info_peer_remove(BANG_module_info *info, uuid_t new_peer) {
static int BANG_module_info_peer_remove(BANG_module_info *info, uuid_t old_peer) {
int i;
BANG_write_lock(info->lck);
for (i = 0; i < info->peers_info->peer_number; ++i) {
if (uuid_compare(info->peers_info->uuids[i],old_peer) == 0) {
info->peers_info->validity[i] = 0;
BANG_write_unlock(info->lck);

return i;
}
}
BANG_write_unlock(info->lck);
i = info->peers_info->peer_number++;

info->peers_info->uuids = realloc(info->peers_info->uuids,i * sizeof(uuid_t));
info->peers_info->validity = realloc(info->peers_info->validity,i * sizeof(char));

uuid_copy(info->peers_info->uuids[i - 1],old_peer);
info->peers_info->validity[i - 1] = 1;

return i - 1;
}

static char check_if_uuid_valid(BANG_module_info *info, uuid_t uuid, int id) {
Expand Down

0 comments on commit 31ec68f

Please sign in to comment.