1010import com .ss .rlib .common .util .array .Array ;
1111import com .ss .rlib .common .util .array .ConcurrentArray ;
1212import com .ss .rlib .common .util .dictionary .ConcurrentObjectDictionary ;
13- import com .ss .rlib .common .util .dictionary .DictionaryFactory ;
1413import com .ss .rlib .common .util .dictionary .ObjectDictionary ;
1514import org .jetbrains .annotations .NotNull ;
1615
@@ -23,7 +22,7 @@ public class SimpleSubscriptions implements Subscriptions {
2322 ConcurrentArray .supplier (Subscriber .class );
2423
2524 private final @ NotNull ConcurrentObjectDictionary <String , ConcurrentArray <Subscriber >> subscriptions =
26- DictionaryFactory . newConcurrentStampedLockObjectDictionary ( );
25+ ConcurrentObjectDictionary . ofType ( String . class , ConcurrentArray . class );
2726
2827 public @ NotNull Array <Subscriber > getSubscribers (@ NotNull String topicName ) {
2928
@@ -66,10 +65,9 @@ public class SimpleSubscriptions implements Subscriptions {
6665 if (subscribers == null ) {
6766 return UnsubscribeAckReasonCode .NO_SUBSCRIPTION_EXISTED ;
6867 } else {
69- //noinspection ConstantConditions
70- boolean removed = subscribers .getInWriteLock (
68+ boolean removed = subscribers .removeIfInWriteLock (
7169 mqttClient ,
72- (subs , client ) -> subs . removeIf ( subscriber -> client .equals (subscriber .getMqttClient () ))
70+ (client , subscriber ) -> client .equals (subscriber .getMqttClient ())
7371 );
7472
7573 return removed ? UnsubscribeAckReasonCode .SUCCESS : UnsubscribeAckReasonCode .NO_SUBSCRIPTION_EXISTED ;
0 commit comments