+ void xfer_slices(int slices);
+ typedef void (BC_Xfer::*xfer_fn)(unsigned y0, unsigned y1);
+ xfer_fn xfn;
+
+ class Slicer : public ListItem<Slicer>, public Thread {
+ public:
+ Condition *init, *complete;
+ Slicer(BC_Xfer *xp);
+ ~Slicer();
+ void slice(BC_Xfer *xp, unsigned y0, unsigned y1);
+ void run();
+ BC_Xfer *xp;
+ int done, y0, y1;
+ };
+
+ class SlicerList : public List<Slicer>, public Mutex {
+ public:
+ int count;
+ Slicer *get_slicer(BC_Xfer *xp);
+ void reset();
+ SlicerList();
+ ~SlicerList();
+ };
+ static SlicerList slicers;