Lines Matching refs:srlzer

862 	struct fmdump_srlzer *srlzer = pl->pl_srlzer;  in srlzer_enter()  local
864 (void) pthread_mutex_lock(&srlzer->ds_lock); in srlzer_enter()
870 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in srlzer_exit() local
872 ASSERT(MUTEX_HELD(&srlzer->ds_lock)); in srlzer_exit()
873 (void) pthread_mutex_unlock(&srlzer->ds_lock); in srlzer_exit()
877 srlzer_choose(struct fmdump_srlzer *srlzer) in srlzer_choose() argument
884 ASSERT(MUTEX_HELD(&srlzer->ds_lock)); in srlzer_choose()
886 for (i = 0, slot = &srlzer->ds_slot[0]; i < srlzer->ds_pipecnt; in srlzer_choose()
906 return (oldestidx >= 0 ? &srlzer->ds_pipearr[oldestidx] : NULL); in srlzer_choose()
912 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in pipeline_stall() local
914 ASSERT(MUTEX_HELD(&srlzer->ds_lock)); in pipeline_stall()
915 (void) pthread_cond_wait(&pl->pl_cv, &srlzer->ds_lock); in pipeline_stall()
921 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in pipeline_continue() local
923 ASSERT(MUTEX_HELD(&srlzer->ds_lock)); in pipeline_continue()
924 (void) pthread_cond_signal(&srlzer->ds_pipearr[pl->pl_srlzeridx].pl_cv); in pipeline_continue()
938 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in pipeline_output() local
943 ASSERT(MUTEX_HELD(&srlzer->ds_lock)); in pipeline_output()
945 slot = &srlzer->ds_slot[thisidx]; in pipeline_output()
949 srlzer->ds_nrecordavail++; in pipeline_output()
954 if (srlzer->ds_pollcnt == srlzer->ds_pipecnt) in pipeline_output()
961 if (srlzer->ds_nrecordavail + srlzer->ds_ndone + in pipeline_output()
962 srlzer->ds_pollcnt < srlzer->ds_pipecnt) in pipeline_output()
971 wpl = srlzer_choose(srlzer); in pipeline_output()
986 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in pipeline_mark_consumed() local
988 ASSERT(MUTEX_HELD(&srlzer->ds_lock)); in pipeline_mark_consumed()
989 srlzer->ds_slot[pl->pl_srlzeridx].ss_state = FMDUMP_PIPE_PROCESSING; in pipeline_mark_consumed()
990 srlzer->ds_nrecordavail--; in pipeline_mark_consumed()
996 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in pipeline_done() local
1001 srlzer->ds_slot[pl->pl_srlzeridx].ss_state = FMDUMP_PIPE_DONE; in pipeline_done()
1002 srlzer->ds_ndone++; in pipeline_done()
1003 wpl = srlzer_choose(srlzer); in pipeline_done()
1013 struct fmdump_srlzer *srlzer = pl->pl_srlzer; in pipeline_pollmode() local
1016 if (srlzer->ds_slot[pl->pl_srlzeridx].ss_state == FMDUMP_PIPE_POLLING) in pipeline_pollmode()
1021 srlzer->ds_slot[pl->pl_srlzeridx].ss_state = FMDUMP_PIPE_POLLING; in pipeline_pollmode()
1022 if (++srlzer->ds_pollcnt + srlzer->ds_nrecordavail == in pipeline_pollmode()
1023 srlzer->ds_pipecnt && (wpl = srlzer_choose(srlzer)) != NULL) in pipeline_pollmode()
1144 struct fmdump_srlzer srlzer; in aggregate() local
1195 bzero(&srlzer, sizeof (srlzer)); in aggregate()
1196 srlzer.ds_pipearr = pipeline; in aggregate()
1197 srlzer.ds_pipecnt = npipe; in aggregate()
1198 srlzer.ds_slot = calloc(npipe, sizeof (struct fmdump_srlzer_slot)); in aggregate()
1199 if (!srlzer.ds_slot) in aggregate()
1201 (void) pthread_mutex_init(&srlzer.ds_lock, NULL); in aggregate()
1206 srlzer.ds_slot[i].ss_state = FMDUMP_PIPE_PROCESSING; in aggregate()
1207 pl->pl_srlzer = &srlzer; in aggregate()
1238 free(srlzer.ds_slot); in aggregate()