From 55f2cf044c1d3ab293fa19d28d783d6788af777c Mon Sep 17 00:00:00 2001 From: Rene Donner Date: Sat, 5 Sep 2015 18:43:08 +0200 Subject: [PATCH] fix sharedarray indexing regression --- base/sharedarray.jl | 12 ++++++------ test/parallel.jl | 3 +++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/base/sharedarray.jl b/base/sharedarray.jl index 899d5f2214770..ab29e05e8b47b 100644 --- a/base/sharedarray.jl +++ b/base/sharedarray.jl @@ -280,9 +280,9 @@ end convert(::Type{Array}, S::SharedArray) = S.s # pass through getindex and setindex! - unlike DArrays, these always work on the complete array -getindex(S::SharedArray, I::Real) = getindex(S.s, I) +getindex(S::SharedArray, i::Real) = getindex(S.s, i) -setindex!(S::SharedArray, x, I::Real) = setindex!(S.s, x, I) +setindex!(S::SharedArray, x, i::Real) = setindex!(S.s, x, i) function fill!(S::SharedArray, v) vT = convert(eltype(S), v) @@ -334,10 +334,10 @@ function shmem_randn(dims; kwargs...) end shmem_randn(I::Int...; kwargs...) = shmem_randn(I; kwargs...) -similar(S::SharedArray, T, dims::Dims) = SharedArray(T, dims; pids=procs(S)) -similar(S::SharedArray, T) = similar(S, T, size(S)) -similar(S::SharedArray, dims::Dims) = similar(S, eltype(S), dims) -similar(S::SharedArray) = similar(S, eltype(S), size(S)) +similar(S::SharedArray, T, dims::Dims) = similar(S.s, T, dims) +similar(S::SharedArray, T) = similar(S.s, T, size(S)) +similar(S::SharedArray, dims::Dims) = similar(S.s, eltype(S), dims) +similar(S::SharedArray) = similar(S.s, eltype(S), size(S)) map(f, S::SharedArray) = (S2 = similar(S); S2[:] = S[:]; map!(f, S2); S2) diff --git a/test/parallel.jl b/test/parallel.jl index 8d316ba1a83cd..fc04e0214713a 100644 --- a/test/parallel.jl +++ b/test/parallel.jl @@ -97,6 +97,9 @@ for p in procs(d) @test d[idxl] == p end +d = SharedArray(Float64, (2,3)) +@test isa(d[:,2], Vector{Float64}) + ### SharedArrays from a file # Mapping an existing file