سؤال

مكتبة Boost Threading لديها التجريد للتخزين المحدد (المحلي). لقد قشطت الكود المصدري ويبدو أنه يمكن استخدام وظيفة TSS في تطبيق مع أي مؤشر ترابط موجود بغض النظر عن الطقس الذي تم إنشاؤه من Boost :: Thread -IN ، وهذا يعني أن بعض عمليات الاسترجاعات مسجلة لدى kernel قم بربط وظيفة رد الاتصال التي قد تستدعي المدمرة لأي كائنات TSS عندما يكون مؤشر الترابط أو العملية خارج النطاق. لقد وجدت هذه عمليات الاسترجاعات.

أحتاج إلى تخزين HMAC_CTX من OpenSSL داخل خيوط العمال لمختلف خبراء الويب (انظر هذه, ، مفصل ، سؤال لما أحاول القيام به) ، وعلى هذا النحو لا أتحكم في مدى حياة الخيط-خادم الويب الذي يفعله. لذلك سأستخدم وظيفة TSS على مؤشرات الترابط التي لا يتم إنشاؤها بواسطة Boost :: Thread.

أردت فقط التحقق من صحة افتراضاتي قبل أن أبدأ في تنفيذ منطق التخزين المؤقت ، هل هناك أي عيوب في منطقتي؟

هل كانت مفيدة؟

المحلول

أنت على حق. يمكنك استخدامه للمواضيع التي لم يتم إنشاؤها بواسطة Boost :: Thread. إذا نظرت إلى test_tss.cpp ، يمكنك أن ترى أنها تختبر ذلك بالضبط ، ويجب أن تعمل مع كل من مؤشرات ترابط Posix و Windows.

نصائح أخرى

هذا صحيح جزئيًا ، حيث لا يتم استدعاء المدمر عند الانتهاء من الخيط الرئيسي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top