2009-10-27 12 views
5

Hỗ trợ gần đây của GCC cho atomic operations (như được mô tả here) là tuyệt vời và 90% những gì chúng tôi cần. Thật không may, một số sản phẩm của chúng tôi vẫn cần chạy trên Windows và vì vậy chúng tôi cũng cần các hoạt động nguyên tử nguyên tử cho Windows.Giải pháp thay thế cho các hoạt động số nguyên nguyên tử mới của GCC

Trước đây, chúng tôi đã triển khai ngôn ngữ lắp ráp tùy chỉnh cho tất cả nền tảng của mình, nhưng tôi muốn di chuyển tất cả nền tảng * nix sang các hoạt động được hỗ trợ của GCC và suy nghĩ vượt qua ý nghĩ của tôi. cách để thực hiện điều này trên Windows ngay bây giờ ...

Có cách nào được xử phạt chính thức để thực hiện việc này trên Windows (ngoài việc tự mình triển khai ngôn ngữ lắp ráp) không?

+4

Có sử dụng tùy chọn MinGW không? Họ đang ở phiên bản gcc 4.4.0, tức là các hoạt động nguyên tử sẽ có sẵn; Tôi tránh trình biên dịch MS cho lập trình C dù sao hỗ trợ C99 bị thiếu nghiêm trọng ... – Christoph

Trả lời

6

Bạn muốn có các chức năng Interlocked.

+1

Yup. Một liên kết tốt hơn sẽ là http://msdn.microsoft.com/en-us/library/ms684122(VS.85).aspx - trang tóm tắt cho tất cả các chức năng như vậy trong Win32 API. –

+0

Điểm tốt. Bạn luôn có thể chỉnh sửa câu trả lời của tôi, nhưng tôi đã đi và thay đổi nó ở đây. :) –

0

Nó phụ thuộc vào những thứ bạn cần - Tôi không nghĩ rằng có một (trước khi xây dựng) thực hiện của mỗi một trong số họ trên Windows (ngoại trừ có thể trong gcc) nhưng một số người trong số họ đã được xung quanh cho khá trong khi. Windows có InterlockedIncrement, InterlockedDecrement, InterlockedAdd, InterlockedOr, InterlockedXor, v.v.