#include "stdafx.h" #define BOX acl::mbox //#define BOX acl::tbox //#define BOX acl::tbox_array class producer : public acl::thread { public: producer(BOX& box, int max) : box_(box), max_(max) {} ~producer(void) {} protected: void* run(void) { for (int i = 0; i < max_; i++) { int* n = new int; *n = i; box_.push(n); } return NULL; } private: BOX& box_; int max_; }; int main(void) { int max = 50000000; BOX box; producer thr(box, max); thr.start(); for (int i = 0; i < max; i++) { int* n = box.pop(); assert(*n == i); delete n; } printf("All over, max=%d\r\n", max); thr.wait(); return 0; }