मैं एक हास्केल डिमन पर काम कर रहा हूं जो फ़ाइल लॉकिंग तंत्र के साथ POSIX कांटा/exec का उपयोग करता है। मेरे प्रयोगों से पता चलता है कि फ़ाइल लॉक executeFile
के दौरान विरासत में -threaded
रनटाइम के साथ विरासत में नहीं हैं (this thread देखें), इससे कोई फर्क नहीं पड़ता कि मैं +RTS -N
का उपयोग करता हूं या नहीं। इसलिए मैं यह सुनिश्चित करने के लिए एक चेक जोड़ना चाहता हूं कि -threaded
के साथ डिमन को संकलित नहीं किया गया है। क्या इसका पता लगाने के लिए कोई पोर्टेबल तरीका है?कैसे पता लगाया जाए कि एक प्रोग्राम का उपयोग करके संकलित किया गया है?
13
A
उत्तर
13
इस के लिए Control.Concurrent
में एक value, उदाहरण के लिए है
$ ghc -fforce-recomp Test.hs; ./Test
[1 of 1] Compiling Main (Test.hs, Test.o)
Linking Test ...
False
$ ghc -fforce-recomp -threaded Test.hs; ./Test
[1 of 1] Compiling Main (Test.hs, Test.o)
Linking Test ...
True
और यह सी-भाग source code है:
HsBool
rtsSupportsBoundThreads(void)
{
#if defined(THREADED_RTS)
return HS_BOOL_TRUE;
#else
return HS_BOOL_FALSE;
#endif
}
1
यह एक गंदा हैक है और पोर्टेबल नहीं हो सकता है, लेकिन मैं इस बात की पुष्टि कर सकते हैं यह लिनक्स पर GHC-7.6.3 के लिए काम करता है:
isThreaded :: IO (Maybe Bool)
isThreaded = do
tid <- forkIO $ threadDelay 1000000
yield
stat <- threadStatus tid
killThread tid
case stat of
ThreadBlocked BlockedOnMVar -> return (Just True)
ThreadBlocked BlockedOnOther -> return (Just False)
_ -> return Nothing
जानकारी के लिए BlockedOnOther docstring देखें।
module Main (main) where
import Control.Concurrent
main :: IO()
main = print rtsSupportsBoundThreads
और परीक्षण:
संबंधित मुद्दे
- 1. विंडो का पता लगाने के लिए कैसे पता लगाया जाए कि क्या एक लिंक क्लिक किया गया था .onbeforeunload ट्रिगर किया गया है?
- 2. रनटाइम पर कैसे पता लगाया जाए कि प्रतीकों को छीन लिया गया है या नहीं?
- 3. सी ++ निर्देशिका देखना - प्रतिलिपि का पता कैसे लगाया गया है
- 4. Google मानचित्र का उपयोग करके पॉलीगॉन के अंदर एक बिंदु कैसे पता लगाया जाए?
- 5. आईओएस कैसे पता लगाया जाए कि ऐप को
- 6. कैसे पता लगाया जाए कि डिवाइस पर iCloud खाता बदल गया है या नहीं?
- 7. जब MKUserTrackingBarButtonItem का उपयोग किया जाता है, तो इसका पता कैसे लगाया जाए
- 8. रीयलटाइम पर कैसे पता लगाया जाए IOS
- 9. पता कैसे लगाया जाए कि नोड की प्रक्रिया। स्टडआउट पाइप किया जा रहा है या नहीं?
- 10. कैसे पता चलेगा कि एक PHAsset संशोधित किया गया है?
- 11. पायथन: मेरा धागा अनाथ बनने पर कैसे पता लगाया जाए?
- 12. कैसे पता लगाया जाए कि संकलन समय पर एक प्रकार लैम्ब्डा अभिव्यक्ति है या नहीं?
- 13. कैसे पता लगाया जाए कि एक निर्देशित ग्राफ चक्रीय है या नहीं?
- 14. पता लगाया गया स्मृति लीक
- 15. विंडोज 10 मोबाइल पर लॉन्च किया गया WP8.1 ऐप कैसे पता लगाया जाए?
- 16. विंडोज सिस्टम ट्रे में परिवर्तनों का पता कैसे लगाया जाए?
- 17. टीएफएस के साथ फाइल संशोधनों का पता कैसे लगाया जाए?
- 18. लैपटॉप पावर केबल डिस्कनेक्ट होने पर कैसे पता लगाया जाए?
- 19. स्कैला में अनंत मूल्यों का पता कैसे लगाया जाए?
- 20. ऋणात्मक enum सदस्यों का अनुमान लगाया गया है कि आखिरी बार अनुमान लगाया गया है?
- 21. फेसबुक शेयर सफलता का पता कैसे लगाया जाए? जावास्क्रिप्ट
- 22. Android ListView स्क्रॉलिंग का पता कैसे लगाया गया?
- 23. मेक फ़ाइल में ओएस का पता कैसे लगाया जाए?
- 24. किसी ऑब्जेक्ट को कैसे पता लगाया गया है?
- 25. कैसे पता लगाया जाए कि संग्रह में विशिष्ट प्रकार का उदाहरण है या नहीं?
- 26. सामग्री को कैसे हटाया गया है यह कैसे पता लगाया जाए?
- 27. जब उपयोगकर्ता कुंजीपटल बदलता है तो कैसे पता लगाया जाए?
- 28. मैक पर हेडफ़ोन जैक में कुछ कैसे पता लगाया जाए?
- 29. क्या पोर्टेबल का पता लगाने का कोई तरीका है कि मैक्रोज़ का उपयोग करके मानक हेडर शामिल किया गया है?
- 30. पायथन का उपयोग कर विंडोज़ में फ्लैश ड्राइव प्लग-इन का पता कैसे लगाया जाए?
'setNumCapabilities 2' और जांचें कि 'getNumCapabilities' रिटर्न 1? – Yuras