14 #ifndef PIPELINECYCLERDUMMYIMPL_H
15 #define PIPELINECYCLERDUMMYIMPL_H
19 #if defined(DO_PIPELINING) && !defined(HAVE_THREADS)
39 struct EXPCL_PANDA_PIPELINE PipelineCyclerDummyImpl {
41 INLINE PipelineCyclerDummyImpl(
CycleData *initial_data,
Pipeline *pipeline =
nullptr);
42 INLINE PipelineCyclerDummyImpl(
const PipelineCyclerDummyImpl ©);
43 INLINE
void operator = (
const PipelineCyclerDummyImpl ©);
44 INLINE ~PipelineCyclerDummyImpl();
46 INLINE
void acquire(
Thread *current_thread =
nullptr);
47 INLINE
void release();
51 INLINE
void increment_read(
const CycleData *pointer)
const;
52 INLINE
void release_read(
const CycleData *pointer)
const;
55 INLINE
CycleData *write_upstream(
bool force_to_0,
Thread *current_thread);
58 INLINE
void increment_write(
CycleData *pointer)
const;
59 INLINE
void release_write(
CycleData *pointer);
61 INLINE
int get_num_stages();
62 INLINE
const CycleData *read_stage_unlocked(
int pipeline_stage)
const;
63 INLINE
const CycleData *read_stage(
int pipeline_stage,
Thread *current_thread)
const;
64 INLINE
void release_read_stage(
int pipeline_stage,
const CycleData *pointer)
const;
65 INLINE
CycleData *write_stage(
int pipeline_stage,
Thread *current_thread);
66 INLINE
CycleData *write_stage_upstream(
int pipeline_stage,
bool force_to_0,
Thread *current_thread);
68 INLINE
CycleData *elevate_read_stage_upstream(
int pipeline_stage,
const CycleData *pointer,
69 bool force_to_0,
Thread *current_thread);
70 INLINE
void release_write_stage(
int pipeline_stage,
CycleData *pointer);
75 INLINE
int get_read_count()
const;
76 INLINE
int get_write_count()
const;
81 short _read_count, _write_count;
87 #endif // DO_PIPELINING && !HAVE_THREADS