@@ -64,7 +64,7 @@ import Control.Distributed.Process.Extras.Internal.Types
64
64
( resolveOrDie
65
65
)
66
66
import Control.Distributed.Process.Extras.Time
67
- import Control.DeepSeq (NFData )
67
+ import Control.DeepSeq (NFData ( .. ) )
68
68
import Data.Binary hiding (decode )
69
69
import Data.Typeable (Typeable )
70
70
@@ -81,7 +81,7 @@ type CallId = MonitorRef
81
81
newtype CallRef a = CallRef { unCaller :: (Recipient , CallId ) }
82
82
deriving (Eq , Show , Typeable , Generic )
83
83
instance Serializable a => Binary (CallRef a ) where
84
- instance NFData a => NFData (CallRef a ) where
84
+ instance NFData a => NFData (CallRef a ) where rnf ( CallRef x) = rnf x `seq` ()
85
85
86
86
makeRef :: forall a . (Serializable a ) => Recipient -> CallId -> CallRef a
87
87
makeRef r c = CallRef (r, c)
@@ -101,14 +101,18 @@ data Message a b =
101
101
102
102
instance (Serializable a , Serializable b ) => Binary (Message a b ) where
103
103
instance (NFSerializable a , NFSerializable b ) => NFData (Message a b ) where
104
+ rnf (CastMessage a) = rnf a `seq` ()
105
+ rnf (CallMessage a b) = rnf a `seq` rnf b `seq` ()
106
+ rnf (ChanMessage a b) = rnf a `seq` rnf b `seq` ()
104
107
deriving instance (Eq a , Eq b ) => Eq (Message a b )
105
108
deriving instance (Show a , Show b ) => Show (Message a b )
106
109
107
110
data CallResponse a = CallResponse a CallId
108
111
deriving (Typeable , Generic )
109
112
110
113
instance Serializable a => Binary (CallResponse a )
111
- instance NFSerializable a => NFData (CallResponse a )
114
+ instance NFSerializable a => NFData (CallResponse a ) where
115
+ rnf (CallResponse a c) = rnf a `seq` rnf c `seq` ()
112
116
deriving instance Eq a => Eq (CallResponse a )
113
117
deriving instance Show a => Show (CallResponse a )
114
118
0 commit comments