2013-04-11 27 views

Trả lời

10

n3376 1,9/6

Khi xử lý của máy trừu tượng bị gián đoạn bởi nhận được một tín hiệu, các giá trị của các đối tượng mà là không

- kiểu std dễ bay hơi :: sig_atomic_t cũng không phải

- đối tượng nguyên tử không khóa (29.4)

không được chỉ định trong khi thực hiện xử lý tín hiệu và giá trị của bất kỳ đối tượng nào không nằm trong một trong hai loại hai danh mục này được sửa đổi bởi trình xử lý trở nên không xác định.

Khóa miễn 29,4/1,2

Các ATOMIC _..._ macro LOCK_FREE chỉ là tài sản của các loại nguyên tử tương ứng lock-free, với các biến thể có chữ ký và unsigned nhóm lại với nhau. Các thuộc tính cũng áp dụng cho các chuyên ngành tương ứng (một phần) của mẫu nguyên tử. Giá trị 0 cho biết các loại không bao giờ không khóa. Giá trị 1 cho biết các loại đôi khi không có khóa. Giá trị 2 cho biết các loại luôn không có khóa.

Chức năng atomic_is_lock_free (29.6) cho biết đối tượng có khóa không. Trong bất kỳ chương trình nào được thực hiện , kết quả của truy vấn không khóa sẽ nhất quán cho tất cả các con trỏ cùng loại.

+10

Để hoàn thành, điều đó có nghĩa là bạn có thể sử dụng biến 'std :: atomic x;' * nếu * 'x.is_lock_free()' là đúng. –

+0

Cảm ơn cả hai ... – James

Các vấn đề liên quan