[Swift-devel] swift write once array/struct
    Tim Armstrong 
    tim.g.armstrong at gmail.com
       
    Sat Mar 21 10:06:42 CDT 2015
    
    
  
Hi Ketan,
  I'm not sure that I fully understand the distinction between
internal/external implementation.  In terms of externally observable
behaviour, writing an already written cell will cause a runtime error
immediately.  There's no way you can cause a deadlock or observe
inconsistent values.  Deadlocks with array cells should only happen if
something is waiting for a cell that has been assigned 0 times.
If you're curious, i copied and pasted the relevant code fragment for
Swift/T (it's in data.c in lb).  It's relatively straightforward, even
though it's handling a few cases.  Essentially it's if (A[i] exists) return
error code;.  The data structure is only accessed by a single thread so no
race conditions are possible.
I believe there's something similar in swift/k.
- Tim
      // Does the link already exist?
      adlb_container_val t = NULL;
      bool found = container_lookup(c, curr_sub, &t);
      if (found && (value == NULL || t != NULL))
      {
        // Can overwrite reserved (unlinked) entries with actual data, but
        // cannot double reserve entries.
        // Don't print error by default: caller may want to handle
        DEBUG("already exists: "ADLB_PRIDSUB,
              ADLB_PRIDSUB_ARGS(id, d->symbol, subscript));
        return ADLB_DATA_ERROR_DOUBLE_WRITE;
      }
      // Following code actually assigns the array cell
      ...
On 20 March 2015 at 23:33, Ketan Maheshwari <ketan at mcs.anl.gov> wrote:
> Hi,
>
> So, in the meeting today, I was curious about wether the Swift write once
> array/struct property is enforced via some external function or is it
> intrinsic to the array/struct.
>
> In other words, is  the array/struct implemented in such a way that it
> will automatically not allow anything to write once its i-th item has been
> written or some external entity keeps track of this property and gets
> triggered every time a write happens.
>
> I thought with intrinsic property, write operations will be atomic and
> free of deadlocks as opposed to externally tracked/enforced property.
>
> --
> Ketan
>
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/swift-devel/attachments/20150321/1dd5a4e5/attachment.html>
    
    
More information about the Swift-devel
mailing list