Skip to content

Commit 2de3405

Browse files
committed
Use Concurrent::Map for targets
1 parent 135ede7 commit 2de3405

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/ferrum/context.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Context
1010

1111
def initialize(browser, contexts, id)
1212
@browser, @contexts, @id = browser, contexts, id
13-
@targets = Concurrent::Hash.new
13+
@targets = Concurrent::Map.new
1414
@pendings = Concurrent::MVar.new
1515
end
1616

@@ -47,14 +47,14 @@ def create_target
4747
url: "about:blank")
4848
target = @pendings.take(@browser.timeout)
4949
raise NoSuchTargetError unless target.is_a?(Target)
50-
@targets[target.id] = target
50+
@targets.put_if_absent(target.id, target)
5151
target
5252
end
5353

5454
def add_target(params)
5555
target = Target.new(@browser, params)
5656
if target.window?
57-
@targets[target.id] = target
57+
@targets.put_if_absent(target.id, target)
5858
else
5959
@pendings.put(target, @browser.timeout)
6060
end
@@ -73,7 +73,7 @@ def dispose
7373
end
7474

7575
def has_target?(target_id)
76-
@targets.keys.include?(target_id)
76+
!!@targets[target_id]
7777
end
7878

7979
def inspect

0 commit comments

Comments
 (0)