1
1
This commit was SVN r95.
Этот коммит содержится в:
Jeff Squyres 2004-01-07 20:58:45 +00:00
родитель 09a643212c
Коммит c639648fb1
7 изменённых файлов: 46 добавлений и 38 удалений

Просмотреть файл

@ -10,23 +10,17 @@
#include "lam/mem/mem_globals.h"
/* private list functions */
inline lam_flist_elt_t *lam_flr_request_elt(lam_free_list_t *flist, int pool_idx)
{
lam_dbl_list_t *seg_list = &(flist->fl_free_lists[pool_idx]->sgl_list);
volatile lam_flist_elt_t *elt = lam_dbl_get_last(seg_list);
if ( elt )
lam_sgl_set_consec_fail(seg_list, 0);
return elt;
}
void lam_frl_append(lam_free_list_t *flist, void *chunk, int pool_idx);
static lam_flist_elt_t *lam_flr_request_elt(lam_free_list_t *flist,
int pool_idx);
int lam_frl_create_more_elts(lam_free_list_t *flist, int pool_idx);
static void lam_frl_append(lam_free_list_t *flist, void *chunk, int pool_idx);
void *lam_frl_get_mem_chunk(lam_free_list_t *flist, int index, size_t *len, int *err);
static int lam_frl_create_more_elts(lam_free_list_t *flist, int pool_idx);
int lam_frl_mem_pool_init(lam_free_list_t *flist, int nlists, long pages_per_list, ssize_t chunk_size,
static void *lam_frl_get_mem_chunk(lam_free_list_t *flist, int index, size_t *len, int *err);
static int lam_frl_mem_pool_init(lam_free_list_t *flist, int nlists, long pages_per_list, ssize_t chunk_size,
size_t page_size, long min_pages_per_list,
long default_min_pages_per_list, long default_pages_per_list,
long max_pages_per_list, ssize_t max_mem_in_pool);
@ -104,9 +98,9 @@ int lam_frl_init_with(
int max_pages_per_list,
int max_consec_req_fail,
const char *description,
bool_t retry_for_more_resources,
bool retry_for_more_resources,
lam_affinity_t *affinity,
bool_t enforce_affinity,
bool enforce_affinity,
lam_mem_pool_t *mem_pool)
{
/* lam_frl_init must have been called prior to calling this function */
@ -258,7 +252,7 @@ int lam_frl_init_with(
}
int lam_frl_mem_pool_init(lam_free_list_t *flist,
static int lam_frl_mem_pool_init(lam_free_list_t *flist,
int nlists, long pages_per_list, ssize_t chunk_size,
size_t page_size, long min_pages_per_list,
long default_min_pages_per_list, long default_pages_per_list,
@ -308,7 +302,7 @@ int lam_frl_mem_pool_init(lam_free_list_t *flist,
}
void *lam_frl_get_mem_chunk(lam_free_list_t *flist, int index, size_t *len, int *err)
static void *lam_frl_get_mem_chunk(lam_free_list_t *flist, int index, size_t *len, int *err)
{
void *chunk = 0;
uint64_t sz_to_add;
@ -386,7 +380,18 @@ void *lam_frl_get_mem_chunk(lam_free_list_t *flist, int index, size_t *len, int
void lam_frl_append(lam_free_list_t *flist, void *chunk, int pool_idx)
static lam_flist_elt_t *lam_flr_request_elt(lam_free_list_t *flist, int pool_idx)
{
lam_dbl_list_t *seg_list = &(flist->fl_free_lists[pool_idx]->sgl_list);
volatile lam_flist_elt_t *elt = lam_dbl_get_last(seg_list);
if ( elt )
lam_sgl_set_consec_fail(seg_list, 0);
return elt;
}
static void lam_frl_append(lam_free_list_t *flist, void *chunk, int pool_idx)
{
/* ASSERT: mp_chunk_sz >= fl_elt_per_chunk * fl_elt_size */
// push items onto list
@ -398,7 +403,7 @@ void lam_frl_append(lam_free_list_t *flist, void *chunk, int pool_idx)
int lam_frl_create_more_elts(lam_free_list_t *flist, int pool_idx)
static int lam_frl_create_more_elts(lam_free_list_t *flist, int pool_idx)
{
int err = LAM_SUCCESS, desc;
size_t len_added;

Просмотреть файл

@ -3,7 +3,8 @@
*/
#include <unistd.h>
#include "include/lam_constants.h"
#include "lam_constants.h"
#include "lam/lfc/object.h"
#include "lam/mem/mem_globals.h"

Просмотреть файл

@ -5,7 +5,7 @@
#ifndef LAM_MEMORY_POOL_H
#define LAM_MEMORY_POOL_H
#include "include/lam_types.h"
#include "lam_types.h"
#include "lam/lfc/object.h"
#include "lam/mem/allocator.h"
#include "lam/threads/mutex.h"

Просмотреть файл

@ -41,7 +41,8 @@ void lam_sgl_append_elt_chunk(
#define lam_sgl_lock_list(slist) lam_mtx_trylock(&slist->sgl_lock)
#define lam_sgl_unlock_list(slist) lam_mtx_unlock(&slist->sgl_lock)
inline int lam_sgl_is_locked(lam_seg_list_t *slist)
bool lam_sgl_is_locked(lam_seg_list_t *slist);
inline bool lam_sgl_is_locked(lam_seg_list_t *slist)
{
/* returns 1 if list is currently locked, otherwise 0. */
int ret;

Просмотреть файл

@ -2,8 +2,8 @@
* $HEADER$
*/
#include "lam_constants.h"
#include "lam/lfc/object.h"
#include "include/lam_constants.h"
typedef int affinity_t;

Просмотреть файл

@ -8,6 +8,7 @@
#include <unistd.h>
#include <errno.h>
#include "lam_config.h"
#include "lam/util/reactor.h"
#include "lam/util/malloc.h"
@ -79,7 +80,7 @@ void lam_reactor_init(lam_reactor_t* r)
lam_fh_init_with(&r->r_hash, 1024);
r->r_max = -1;
r->r_run = LAM_TRUE;
r->r_run = true;
r->r_changes = 0;
LAM_FD_ZERO(&r->r_recv_set);
@ -98,12 +99,12 @@ void lam_reactor_destroy(lam_reactor_t* r)
}
lam_bool_t lam_reactor_insert(lam_reactor_t* r, int sd, lam_reactor_listener_t* listener, int flags)
bool lam_reactor_insert(lam_reactor_t* r, int sd, lam_reactor_listener_t* listener, int flags)
{
#ifndef NDEBUG
if(sd < 0 || sd > LAM_FD_SETSIZE) {
lam_err(("Reactor::insertListener(%d) invalid descriptor.\n", sd));
return LAM_FALSE;
return false;
}
#endif
@ -113,7 +114,7 @@ lam_bool_t lam_reactor_insert(lam_reactor_t* r, int sd, lam_reactor_listener_t*
descriptor = lam_reactor_get_descriptor(r, sd);
if(descriptor == 0) {
lam_mtx_unlock(&r->r_mutex);
return LAM_FALSE;
return false;
}
lam_dbl_append(&r->r_pending, &descriptor->rd_base);
lam_fh_set_value_for_ikey(&r->r_hash,descriptor,sd);
@ -134,16 +135,16 @@ lam_bool_t lam_reactor_insert(lam_reactor_t* r, int sd, lam_reactor_listener_t*
}
r->r_changes++;
lam_mtx_unlock(&r->r_mutex);
return LAM_TRUE;
return true;
}
lam_bool_t lam_reactor_remove(lam_reactor_t* r, int sd, lam_reactor_listener_t* rl, int flags)
bool lam_reactor_remove(lam_reactor_t* r, int sd, lam_reactor_listener_t* rl, int flags)
{
#ifndef NDEBUG
if(sd < 0 || sd > LAM_FD_SETSIZE) {
lam_err(("lam_reactor_remove(%d) invalid descriptor.\n", sd));
return LAM_FALSE;
return false;
}
#endif
@ -152,7 +153,7 @@ lam_bool_t lam_reactor_remove(lam_reactor_t* r, int sd, lam_reactor_listener_t*
if(descriptor == 0) {
lam_err(("lam_reactor_remove(%d): descriptor not registered.\n", sd));
lam_mtx_unlock(&r->r_mutex);
return LAM_FALSE;
return false;
}
descriptor->rd_flags &= ~flags;
if(flags & LAM_NOTIFY_RECV) {
@ -169,7 +170,7 @@ lam_bool_t lam_reactor_remove(lam_reactor_t* r, int sd, lam_reactor_listener_t*
}
r->r_changes++;
lam_mtx_unlock(&r->r_mutex);
return LAM_TRUE;
return true;
}
@ -269,7 +270,7 @@ void lam_reactor_poll(lam_reactor_t* r)
void lam_reactor_run(lam_reactor_t* r)
{
while(r->r_run == LAM_TRUE) {
while(true == r->r_run) {
lam_fd_set_t rset = r->r_recv_set;
lam_fd_set_t sset = r->r_send_set;
lam_fd_set_t eset = r->r_except_set;

Просмотреть файл

@ -54,7 +54,7 @@ typedef struct _lam_reactor {
lam_dbl_list_t r_pending;
lam_fast_hash_t r_hash;
int r_max;
lam_bool_t r_run;
bool r_run;
int r_changes;
lam_fd_set_t r_send_set;
lam_fd_set_t r_recv_set;
@ -65,10 +65,10 @@ typedef struct _lam_reactor {
void lam_reactor_init(lam_reactor_t*);
void lam_reactor_destroy(lam_reactor_t*);
lam_bool_t lam_reactor_insert(lam_reactor_t*, int sd, lam_reactor_listener_t*, int flags);
lam_bool_t lam_reactor_remove(lam_reactor_t*, int sd, lam_reactor_listener_t*, int flags);
void lam_reactor_poll(lam_reactor_t*);
void lam_reactor_run(lam_reactor_t*);
bool lam_reactor_insert(lam_reactor_t*, int sd, lam_reactor_listener_t*, int flags);
bool lam_reactor_remove(lam_reactor_t*, int sd, lam_reactor_listener_t*, int flags);
void lam_reactor_poll(lam_reactor_t*);
void lam_reactor_run(lam_reactor_t*);
#endif /* LAM_REACTOR_H */