From a2aabfa9c0adc39aade0908808f7aa4be1e5b2c6 Mon Sep 17 00:00:00 2001 From: polarke Date: Fri, 9 Oct 2015 17:36:35 +0200 Subject: [PATCH 1/2] add same constructors as array --- base/sharedarray.jl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/base/sharedarray.jl b/base/sharedarray.jl index 24b1679bbe855..b4a1d2b7b1b48 100644 --- a/base/sharedarray.jl +++ b/base/sharedarray.jl @@ -24,6 +24,17 @@ type SharedArray{T,N} <: DenseArray{T,N} SharedArray(d,p,r,sn) = new(d,p,r,sn) end +call{T,N}(::Type{SharedArray{T}}, d::NTuple{N,Int}; kwargs...) = + SharedArray(T, d; kwargs...) +call{T}(::Type{SharedArray{T}}, d::Integer...; kwargs...) = + SharedArray(T, d; kwargs...) +call{T}(::Type{SharedArray{T}}, m::Integer; kwargs...) = + SharedArray(T, m; kwargs...) +call{T}(::Type{SharedArray{T}}, m::Integer, n::Integer; kwargs...) = + SharedArray(T, m, n; kwargs...) +call{T}(::Type{SharedArray{T}}, m::Integer, n::Integer, o::Integer; kwargs...) = + SharedArray(T, m, n, o; kwargs...) + function SharedArray(T::Type, dims::NTuple; init=false, pids=Int[]) N = length(dims) From 8e98763048d56a769ff2a2a92bb65c2c23cc135b Mon Sep 17 00:00:00 2001 From: polarke Date: Sun, 11 Oct 2015 20:10:12 +0200 Subject: [PATCH 2/2] add test for sharedarray constructor --- test/parallel.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/parallel.jl b/test/parallel.jl index dc4a01a8e58c8..7c4e523b14fcf 100644 --- a/test/parallel.jl +++ b/test/parallel.jl @@ -179,6 +179,20 @@ end ### Utility functions +# construct PR #13514 +S = SharedArray{Int}((1,2,3)) +@test size(S) == (1,2,3) +@test typeof(S) <: SharedArray{Int} +S = SharedArray{Int}(2) +@test size(S) == (2,) +@test typeof(S) <: SharedArray{Int} +S = SharedArray{Int}(1,2) +@test size(S) == (1,2) +@test typeof(S) <: SharedArray{Int} +S = SharedArray{Int}(1,2,3) +@test size(S) == (1,2,3) +@test typeof(S) <: SharedArray{Int} + # reshape d = Base.shmem_fill(1.0, (10,10,10))