Clojure

enhance with-open to be extensible with a new close multimethod

Details

  • Type: Enhancement Enhancement
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:

Description

Discussion: http://groups.google.com/group/clojure/browse_thread/thread/8e4e56f6fc65cc8e/618a893a5b2a5410

Currently, with-open calls .close when it's finished. I'd like it to have a (defmulti close type) so it's behavior is extensible. A standard method could be defined for java.io.Closeable and a :default method with no type hint. I've come across a few cases where some external library defines what is essentially a close method but names it shutdown or disable, etc., and adding my own "defmethod close" would be much easier than rewriting with-open. This would also allow people to eliminate reflection for classes like sql Connection that were created before Closeable.

Activity

Hide
Tassilo Horn added a comment -

Probably better implemented using a protocol. See http://dev.clojure.org/jira/browse/CLJ-308

Show
Tassilo Horn added a comment - Probably better implemented using a protocol. See http://dev.clojure.org/jira/browse/CLJ-308
Hide
Assembla Importer added a comment -

richhickey said: I want to hold off on this until scopes are in

Show
Assembla Importer added a comment - richhickey said: I want to hold off on this until scopes are in
Hide
Assembla Importer added a comment -

mikehinchey said: Note, I only defined methods for :default (reflection of .close) and Closeable, not sql or the numerous other classes in java that should be Closeable but are not. Maybe clojure.contrib.sql and other such libraries should define related close methods.

Show
Assembla Importer added a comment - mikehinchey said: Note, I only defined methods for :default (reflection of .close) and Closeable, not sql or the numerous other classes in java that should be Closeable but are not. Maybe clojure.contrib.sql and other such libraries should define related close methods.
Hide
Assembla Importer added a comment -

mikehinchey said: [file:ca27R6Ojur3PQ0eJe5afGb]: fix adds close method and tests

Show
Assembla Importer added a comment - mikehinchey said: [file:ca27R6Ojur3PQ0eJe5afGb]: fix adds close method and tests

People

  • Assignee:
    Unassigned
    Reporter:
    Anonymous
Vote (0)
Watch (2)

Dates

  • Created:
    Updated: