int val = memLoc[index++];
Tôi có thể làm cho mã sau khóa miễn phí/nguyên tử không?
hoặc tốt hơn chưa
int val = memLoc[index++ & 0xFF];
Đang cố gắng để làm một thread đọc từ một vòng đệm chia sẻ nơi mỗi cuộc gọi được giá trị tiếp theo - và tôi rất muốn nó được khóa miễn phí nếu ở tất cả có thể vì nó xảy ra một TÔN. Không cho phép Boost/C++ 11: (
Bạn có thể quan tâm đến việc đọc [bài viết này] (http://www.codeproject.com/Articles/43510/Lock-Free-Single-Producer-Single-Consumer-Circular). –
Không C++ 11 có nghĩa là bạn cần một giải pháp chuẩn. Nếu Boost là không thể chấp nhận thì tất cả các thư viện khác (với các điều khoản cấp phép nghiêm ngặt hơn) được cho là tốt, vì vậy bạn không thể lấy bất kỳ thứ gì có thể di chuyển được. Vậy, bạn cần hệ điều hành nào? – MSalters
Loại 'memLoc' là gì? Nó là một con trỏ (hoặc mảng) vào 'int'? –